概述
B - 2 CodeForces - 318A
Being a nonconformist, Volodya is displeased with the current state of things, particularly with the order of natural numbers (natural number is positive integer number). He is determined to rearrange them. But there are too many natural numbers, so Volodya decided to start with the first n. He writes down the following sequence of numbers: firstly all odd integers from 1 to n (in ascending order), then all even integers from 1 to n (also in ascending order). Help our hero to find out which number will stand at the position number k.
Input
The only line of input contains integers n and k (1 ≤ k ≤ n ≤ 1012).
Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.
Output
Print the number that will stand at the position number k after Volodya’s manipulations.
Examples
Input
10 3
Output
5
Input
7 7
Output
6
Note
In the first sample Volodya’s sequence will look like this: {1, 3, 5, 7, 9, 2, 4, 6, 8, 10}. The third place in the sequence is therefore occupied by the number 5.
题目大意:让用户输入一个数n, 从1到n的所有奇数整数(按升序排列),然后从1到n的所有偶数整数(也按升序排)找出哪个数字将站在位置编号k。
思路:如果k小于n/2;那么就是奇数等于(2k-1);如果大于n/2那么就是偶数为(2(k-2/n))。
代码如下(已AC)
#include<iostream>
using namespace std;
int main()
{
long long int n, k, x;
cin >> n >> k;
if (n % 2 == 0)
x = n / 2;
else
x = n / 2 + 1;
if (k <= x)
cout << 2 * k - 1;
else
cout << 2 * (k - x);
return 0;
}
最后
以上就是舒适海燕为你收集整理的整合整数的全部内容,希望文章能够帮你解决整合整数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复