#include<iostream> #include<cstring> using namespace std; int maxd[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//每个月最多天数 int iswin[102][13][32];//以该天起始,亚当是否会赢 1会赢 0 会输 -1还没计算过 int judge(int y,int m,int d) { int win=0; if(y==101&&m==11&&d==4)return 0;//若Eve成功 if(y>101||(y==101&&(m==12||m==11&&d>4)))return 1;//若Eve失败 //若还没计算该天 if(iswin[y][m][d]==-1) { //先改变月份 if(m!=12) { if(d<=maxd[m+1])win=1-judge(y,m+1,d);//与夏娃的胜负相反 else if(m==1&&d==29&&(y%4==0&&y!=0))win=1-judge(y,m+1,d); } else win=1-judge(y+1,1,d); //若改变月份失败,再改变日期 if(win==0) { if(d<maxd[m])win=1-judge(y,m,d+1);//第二天 else if(d==28&&m==2&&y%4==0&&y!=0)win=1-judge(y,m,d+1);//第二天 else if(m!=12)win=1-judge(y,m+1,1);//下个月首 else if(m==12)win=1-judge(y+1,1,1);//元旦 } iswin[y][m][d]=win; } //若已经计算直接返回 return (iswin[y][m][d]); } int main() { memset(iswin,-1,sizeof(iswin)); int cas,y,m,d; cin>>cas; while(cas--) { cin>>y>>m>>d; if(judge(y-1900,m,d))cout<<"YES"<<endl; else cout<<"NO"<<endl; } }