넘치게 채우기

[Codeforces Round 981(Div. 3)] A. Sakurako and Kosuke 본문

PS/Codeforces

[Codeforces Round 981(Div. 3)] A. Sakurako and Kosuke

riveroverflow 2024. 10. 26. 16:39
728x90
반응형

https://codeforces.com/contest/2033/problem/A

Codeforces Round 981(DIv.3) - A. Sakurako and Kosuke

문제 유형: 수학, 구현

시간 제한: 1초

메모리 제한: 256MB

 

문제

Sakurako and Kosuke decided to play some games with a dot on a coordinate line. The dot is currently located in position x=0. They will be taking turns, and Sakurako will be the one to start.

On the i-th move, the current player will move the dot in some direction by 2i1 units. Sakurako will always be moving the dot in the negative direction, whereas Kosuke will always move it in the positive direction.

In other words, the following will happen:

  • Sakurako will change the position of the dot by 1 , x=−1 now.
  • now Kosuke will change the position of the dot by 3, x=2 now.
  • nowSakurako will change the position of the dot by 5, x=−3 now

 

They will keep on playing while the absolute value of the coordinate of the dot does not exceed n

. More formally, the game continues while nxn

. It can be proven that the game will always end.

Your task is to determine who will be the one who makes the last turn.

 

Sakurako와 Kosuke는 한 선분 위에 있는 점을 가지고 게임을 하려 합니다.

x=0에서 점은 시작합니다. 번갈아서 턴을 보내며 진행하고, Sakurako부터 시작합니다.

i번째 움직임에서, 각자는 2 * i -1만큼 점을 움직입니다. Sakurako는 음의 방향, Kosuke는 양의 방향으로 움직입니다.

 

-n ~ n의 범위를 벗어나게 하면, 게임을 그만합니다.

마지막으로 점을 움직인 사람을 구하시오.

 

 

입력

첫 번째 줄에는 테스트 케이스 t(1 <= t <= 100)이 주어집니다.

각 테스트 케이스의 첫 번째 줄에는 n(1 <=  n <= 100)이 주어집니다.

 

출력

각 테스트 케이스마다, 게임의 결과를 출력하시오.

 

풀이

단순히 보면, 각 플레이어의 턴에, 절댓값이 1씩 늘어난다. 

즉, 양쪽 합쳐서 n번째 차례에 마지막 움직임을 가진다.

n번째에 Sakurako가 움직였다면, Kosuke가 정답이 되겠고, Kosuke가 움직였다면 Sakurako가 정답이 되겠다.

즉, n%2가 홀수면 Kosuke, n%2가 짝수면 Sakurako가 정답이 된다.

 

코드

C++

#include <bits/stdc++.h>

using namespace std;

int main(int argc, char *argv[]) {
  int t;
  cin >> t;
  int turn;
  while (t-- > 0) {
    cin >> turn;
    string res = ((turn % 2) == 1) ? "Kosuke\n" : "Sakurako\n";
    cout << res;
  }
  return 0;
}
728x90
반응형