백준 2164 c++
#include <iostream>
#include <queue>
using namespace std;
int input(int lower, int upper);
int check_last_card(int N);
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
N = input(1, 500000);
cout << check_last_card(N) << "\n";
return 0;
}
int input(int lower, int upper)
{
//cout << "input" << endl;
int A;
while (1)
{
cin >> A;
if (A >= lower && A <= upper)
{
break;
}
else
{
;
}
}
return A;
}
int check_last_card(int N)
{
//cout << "check_last_card" << endl;
queue <int> card;
int i;
for (i = 1; i <= N; i++)
{
card.push(i);
}
while (1)
{
if (card.size() == 1)
{
break;
}
else
{
card.pop();
card.push(card.front());
card.pop();
}
}
return card.front();
}