#include <stdio.h>
int M[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31 };
int is_yun_year(int y)
{
return (((y % 4) == 0) && ((y % 100 != 0)) || ((y % 400) == 0));
}
int main()
{
// k = 황금 사과가 수확되기 시작하는 사과와 배의 개수
// n = 2일마다 수확되는 사과의 개수
// m = 3일마다 수확되는 배의 개수
int k, n, m;
scanf("%d %d %d", &k, &n, &m);
// k가 수확된 사과와 배의 개수를 저장하는 변수인데
// 첫날에 사과와 배를 수확했기 떄문에
// 첫번째로 수확된 사과와 배 제거
k -= n + m;
//6일을 기준으로 한 사가와 배의 수확량
int num6 = 3 * n + 2 * m;
// days 날에 처음으로 황금사과를 수확
int days = 0; // 첫번째 황금 사과 수확까지 걸리는 날
if (k > 0) // 만약 수확해야 하는 사과와 배의 개수가 0보다 크다면
{
int x = k / num6; // num6를 반복해야 하는 횟수
days += x * 6; // days에 x * 6일만큼 사과와 배를 수확
// k는 총 수확해야하는 사과와 배의 개수이니
// k에 x * 6일만큼 수확한 사과와 배를 제거해준다.
k -= x * num6;
// 만약 수확해야 하는 사과와 배가 없으면
// days에 2를 추가해 첫 황금 사과를 수확하는 날짜를 저장한다.
if (k == 0) days += 2;
// 만약 수확해야 하는 사과와 배가 2일마다 수확되는 사과의 양보다 작거나 같다면
// 한번 더 사과를 수확한 후 다음 사과 수확일에 황금 사과를 수확하면 되므로
// days에 4를 추가해 첫 황금 사과를 수확하는 날짜를 저장한다.
else if (k <= n) days += 4;
// 만약 수확해야 하는 사과와 배가 2일마다 수확되는 사과의 양과 3일마다 수확되는 배의 양을 합친 것보다 작거나 같다면
// 한번 씩 사과와 배를 수확한 후 황금 사과를 수확하면 되므로
// days에 4를 추가해 첫 황금 사과를 수확하는 날짜를 저장한다.
else if (k <= n + m) days += 4;
// 만약 수확해야 하는 사과와 배가 2일마다 수확해야 하는 사과를 2번 수확한 것과 3일마다 수확되는 배의 양을 합친 것보다 작거나 같다면
// 사과를 두 번 수확하도 배를 한 번 수확하면 황금 사과를 수확하는 날짜가 나오므로
// days에 6를 추가해 첫 황금 사과를 수확하는 날짜를 저장한다.
else if (k <= 2 * n + m) days += 6;
// 위에 작업을 다 거쳤는데도 끝나지 않았다면 num6 과정을 한번 더 하면 되므로
// days에 8을 더한다.
else days += 8;
}
else days = 2; // 만약 k가 0보다 작다면 다음 사과 수확날에 황금 사과를 수확할 것이므로 days를 2로 정한다.
int year = 2023, month = 1, day = 1;
while (1)
{
// 만약 is_yun_year 함수에서 결과가 1이 나오면 윤년이란 뜻인데
// M[2]가 2월 달 끝부분이므로 29로 바꾼다.
if (is_yun_year(year)) M[2] = 29;
else M[2] = 28; // 윤년이 아니면 28로 둔다.
if (days >= M[month]) // 만약 첫번쨰 황금 사과 수확일이 달 수를 넘어버린다면
{
days -= M[month]; // days에 달 수를 빼고
month++; // 달을 하나 올린다.
if (month == 13) // 만약 month가 13이면 년도를 올려줘야 하므로
{
year++; // 년도를 올려주고
month = 1; // 달을 1로 바꿔준다.ㄴ
}
}
else break; //days가 M[month]를 넘지 않으면 이 반복문을 나간다.
}
// 년도는 4칸에 맞춰서 출력하고
// 월과 일은 2칸에 맞춰 출력한다.
printf("%04d/%02d/%02d", year, month, day + days);
}