GAME3112 - Ngày 31 tháng 12

Tác giả: happyboy99x

Ngôn ngữ: C++

#include<cstdio>

const int day[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int f[13][32], t[13][32][2];

void dp() {
	f[12][31] = 1;
	for(int m = 12; m >= 1; --m)
		for(int d = day[m]; d >= 1; --d) if(f[m][d] == 0) {
			for(int nd = d+1; nd <= day[m] && f[m][d] == 0; ++nd) if(f[m][nd] == 0)
				f[m][d] = 1, t[m][d][0] = m, t[m][d][1] = nd;
			for(int nm = m+1; nm <= 12 && f[m][d] == 0; ++nm) if(d <= day[nm] && f[nm][d] == 0)
				f[m][d] = 1, t[m][d][0] = nm, t[m][d][1] = d;
		}
}

int main() {
	int m, d; scanf("%d%d",&d,&m); dp();
	if(f[m][d] == 0) puts("LOSS");
	else printf("%d %d\n", t[m][d][1], t[m][d][0]);
	return 0;
}

Download