fragment-header
fragment-markdown
홈
로그인
로그아웃
내 블로그
설정
로그인
백준 11869 (C++) 님블
최초 업로드: 2025-09-11 07:25:49
최근 수정 시간: 2025-09-11 07:25:49
게시자: rlatjwls3333
카테고리: 백준
조회수: 14
# [Platinum IV] 님블 [문제 링크](https://www.acmicpc.net/problem/11869) ## 문제 설명 <p>님블은 1×N 직사각형에서 즐기는 게임이다. 직사각형은 1×1 크기의 정사각형으로 나누어져 있고, 가장 왼쪽 정사각형은 0번, 그 오른쪽 정사각형은 1번, ..., 가장 오른쪽 정사각형은 N-1번이다. 각 정사각형에는 동전이 놓여져 있을 수 있는데, 한 개 이상 놓여져 있을 수도 있다.</p> <p>두 사람은 턴을 번갈아가면서 게임을 진행한다. 턴은 동전을 하나 고르고, 동전을 왼쪽으로 한 칸 이상 옮기는 것으로 이루어져 있다. </p> <p>모든 동전이 0에 있으면 게임이 끝나게 되며, 마지막 동전을 0으로 옮긴 사람이 게임을 이긴다.</p> <p>koosaga와 cubelover는 님블을 하려고 한다. 두 사람이 모두 최적의 방법으로 게임을 했을 때, 이기는 사람을 출력한다. 게임은 koosaga가 먼저 시작한다.</p> ## 입력 <p>첫째 줄에 동전의 개수 M (1 ≤ M ≤ 100)이 주어진다.</p> <p>둘째 줄에는 동전이 놓여져있는 정사각형 칸의 번호 P<sub>i</sub> (1 ≤ P<sub>i</sub> ≤ 10<sup>9</sup>)가 주어진다.</p> <p>직사각형의 크기는 항상 1×10<sup>10</sup>이다.</p> ## 출력 <p>koosaga가 이기는 경우에는 'koosaga'를, cubelover가 이기는 경우에는 'cubelover'를 출력한다.</p> ## 풀이 일반적인 스프라그-그런디 문제이다 ``` c++ #include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int m; cin >> m; int ret=0; while(m--) { int p; cin >> p; ret ^= p; } cout << (ret?"koosaga":"cubelover"); } ```