题目背景
温昭雪喜欢构造排列。
题目描述
她的目标是构造一个由 n 个数组成的排列 A1,A2,…,An,初始时 A 中的所有元素都是 0。
接下来,对于数 i(1≤i≤n),她通过下面方式由 1 到 n 确定其位置:
-
如果 i=1,将其放到最左侧。
-
如果 i=2,将其放到最右侧。
-
如果都不是,定义 f0(x) 表示 x 左侧(包含 x,下同)的连续的 0 的个数,g0(x) 为 x 右侧的连续的 0 的个数。特别地,如果 x≤0 或 x>n,f0(x)=g0(x)=n+1。
-
定义 f1(x) 表示 x 左侧的连续非 0 位置的个数,g1(x) 表示 x 右侧的连续非 0 位置的个数。特别地,如果 x≤0 或 x>n,f0(x)=g0(x)=0。
-
如果存在位置 j,使得 min(f0(j),g0(j))>1,则选择位置 j 最大化 min(f0(j),g0(j))。如果有多个位置的值相同,选择 j 较小的。
-
如果不存在这样的位置,则选择位置 j 使得 f0(j)=1 并最小化 f1(j−1)+g1(j+1)。如果有多个位置的值相同,选择 j 较小的。
温昭雪的幸运数字是 k。为了避免输出过多,她只想知道数字 k 处于排列的什么位置。
输入格式
本题单个测试点内有多组测试数据。
输入第一行 T,表示数据组数。
以下 T 行,每行两个正整数 n,k。
输出格式
输出 T 行,每行一个正整数 x,表示排列长度为 n 时,Ax=k。
2
3 1
6 4
1
4
提示
样例解释
第一组测试数据对应的排列为 {1,3,2}。
第二组测试数据对应的排列为 {1,5,3,4,6,2}。
数据规模与约定
测试点编号 |
n |
k |
T |
∑n |
特殊性质 |
1,2 |
≤10 |
≤10 |
≤100 |
|
3,4 |
≤100 |
≤1000 |
5 |
≤1000 |
≤10 |
≤104 |
6,7 |
≤1000 |
≤100 |
≤105 |
8,9 |
≤104 |
≤10 |
10∼13 |
≤104 |
≤106 |
n,k 均为奇数 |
14∼17 |
n,k 均为偶数 |
18,19 |
≤105 |
≤10 |
≤105 |
|
20,21 |
≤105 |
≤100 |
≤106 |
22∼25 |
≤106 |
对于奇数编号的测试点,内存限制为 512 MB;对于偶数编号的测试点,内存限制为 64 MB。
对于所有数据,保证 1≤k≤n≤106,∑n≤106。