fragment-header
fragment-markdown
홈
로그인
로그아웃
내 블로그
설정
로그인
백준 7787 (C++) 빨간 칩, 초록 칩
최초 업로드: 2025-09-17 22:18:30
최근 수정 시간: 2025-09-17 22:18:30
게시자: rlatjwls3333
카테고리: 백준
조회수: 5
# [Platinum III] 빨간 칩, 초록 칩 [문제 링크](https://www.acmicpc.net/problem/7787) ## 문제 설명 <p>이 게임은 빨간 칩 r개와 초록 칩 g개를 책상 위에 놓고 진행한다. 두 플레이어 A와 B는 턴을 번갈아가면서 게임을 하며, A가 먼저 시작한다.</p> <p>게임의 규칙은 간단하다. 자신의 턴이 돌아오면 두 색중 하나를 고른 뒤, 고른 색에 해당하는 칩 k개를 책상에서 제거한다. 이때, k는 고르지 않은 색의 칩의 수를 나누어 떨어지게 할 수 있어야 한다. 책상에서 마지막 칩을 제거한 사람이 게임을 이기게 된다.</p> <p>게임을 항상 이길 수 있는 사람을 구하는 프로그램을 작성하시오.</p> ## 입력 <p>첫째 줄에 r과 g가 주어진다. (1 ≤ r, g ≤ 10<sup>9</sup>)</p> ## 출력 <p>A가 항상 이길 수 있다면 "A player wins"를, B가 항상 이길 수 있다면 "B player wins"를 출력한다.</p> ## 풀이 직접 계산해보면 r과 g가 모두 홀수인 경우와 r과 g를 4로 나눈 나머지가 같을 경우, 그런디 수가 0이 나와 항상 B가 승리하고, 나머지는 A가 승리한다. ``` c++ #include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int r, g; cin >> r >> g; if(r%2) { if(g%2) cout << "B player wins"; else cout << "A player wins"; } else { if(r%4==g%4) cout << "B player wins"; else cout << "A player wins"; } } ```