Educational Codeforces Round 68 (Rated for Div. 2) A. Remove a Progression

Educational Codeforces Round 68 (Rated for Div. 2)

翻译 岛田小雅

A. Remove a Progression

出题人 adedalic

黑板上写着一行从 \(1\)\(n\) 的数字,你每次擦除其中的一个数字。第 \(i\) 次行动你将擦除剩余数字中的第 \(i\) 个(注意,是将数字整个擦除,而不是只擦除其中的一位)。

img

你的行动直到黑板上剩余的数字个数少于 \(i\) 时停止。

现在你想知道:当你停止行动时,黑板上剩余的第 \(x\) 个数字是几?

输入格式

第一行是一个整型 \(T\) \((1≤T≤100)\) ,代表测试点个数。接下来 \(T\) 行每一行一个测试点,每个测试点都是独立的。

每一行有被空格分开的两个数 \(n\)\(x\) \((1≤x<n≤109)\)\(n\) 是数字的最初个数,而 \(x\) 是你想知道的位置。数据保证行动结束时黑板上剩下不少于 \(x\) 个数字。

输出格式

对每个测试点输出位置 \(x\) 的值。

样例

输入

3
3 1
4 2
69 6

输出

2
4
12

官方题解

作者 awoo

用各种方法(比如在你的脑子里,或者在纸上,或者在电脑里)模拟后,我们发现所有的奇数位置的数字全被擦除了,只有偶数位置的数剩下。所以答案是 \(2x\)

AC 代码

作者 岛田小雅
#include <bits/stdc++.h>
using namespace std;

const int N = 1e9+2;
int t, n, x;

int main()
{
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> t;
    while(t--)
    {
        cin >> n >> x;
        cout << 2*x << '\n';
    }
    return 0;
}
posted @ 2022-09-17 23:42  岛田小雅  阅读(19)  评论(0编辑  收藏  举报