※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 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
'BOJ' 카테고리의 다른 글
[BOJ 18119 // C++] 단어 암기 (0) | 2024.06.13 |
---|---|
[BOJ 17225 // C++] 세훈이의 선물가게 (0) | 2024.06.12 |
[BOJ 23921 // C++] Kick_Start (1) | 2024.06.10 |
[BOJ 17951 // C++] 흩날리는 시험지 속에서 내 평점이 느껴진거야 (0) | 2024.06.09 |
[BOJ 1490 // C++] 자리수로 나누기 (1) | 2024.06.08 |