※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 30847번 문제인 Нечетный ним이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/30847

 

각 플레이어가 행동을 할 때마다 "돌이 홀수개 남아있는 더미의 개수"의 기우성(홀짝)이 변함을 확인하자. 따라서 각 플레이어는 어떻게 행동하더라도 자신의 턴에 남아있는 "돌이 홀수개 남아있는 더미의 수"의 기우성이 변하지 않음을 관찰할 수 있다.

 

자신의 턴에 남아있는 돌이 전부 없어진 상태라는 것은 "돌이 홀수개 남아있는 더미의 수"가 짝수인 상태임을 의미한다. 이 내용과 위의 관찰을 토대로 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;
typedef long long ll;

ll gcd(ll x, ll y) {
	if (y) return gcd(y, x % y);
	return x;
}

ll N, M, G;
char C;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> N >> M;
	G = min(gcd(N, M), 1000000LL);
	cin >> C;
	while (G--) cout << C;
}
728x90

+ Recent posts