돌 게임은 두 명이서 즐기는 재밌는 게임이다.
탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개, 3개 또는 4개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 지게 된다.
두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다.
첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000)
상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.
https://www.acmicpc.net/problem/9658
그동안 그런디값을 계산할때 마지막 돌을 가져가면 승리하므로
*0 = *0 //*1 = *1을 두고 계산햇었다.
그런데 이 문제와 같이 마지막돌을 가져가면 패배하는경우는
*0 = *1 //*1 = *0 을 두고 계산하면 된다.
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
using std::vector; using std::stack; using std::queue;
using std::deque; using std::string; using std::pair;
using std::sort;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<double, double> pdd;
typedef pair<ll, ll> pll;
typedef pair<ll, int> pli;
typedef pair<int, ll> pil;
typedef pair<int, char> pic;
typedef pair<char, int> pci;
int mod[] = { 1, 0, 1, 0, 2, 3, 2 };
// { 0, 1, 0, 1, 2, 3, 2 };
void init();
void init() {
int n;
scanf("%d", &n);
n %= 7;
mod[n] ? printf("SK") : printf("CY");
}
int main(void) {
init();
return 0;
}