#include char buffer[50]; int rc[6]; int lom[4]; int lom2[3]; bool stare = false; bool chyba = false; bool baba = false; void rok(); int poc(); int mes(); int babacheck(); int rokcheck(); int dencheck(); void clean(); int main() { clean(); while(1) { gets(buffer); if(buffer[0]=='e') { break; } else if ((buffer[0]=='/')||(buffer[1]=='/')||(buffer[2]=='/')||(buffer[3]=='/')||(buffer[4]=='/')||(buffer[5]=='/')||(buffer[6]!='/')||(buffer[7]=='/')||(buffer[8]=='/')||(buffer[9]=='/')||(buffer[10]=='/')||(buffer[11]!=0)) { printf("invalid\n"); chyba=true; } else { rok(); if ((((rc[0]==5)&&(rc[1]<4))||(rc[0]<5))&&(rc[0]>1)) { stare=true; } } if((((stare==true)&&(buffer[10]!=0))||((stare==false)&&(buffer[10]==0)))&&(chyba==false)) { printf("invalid\n"); chyba=true; } else if (stare==true) for(int i=0; i<3; i++) lom2[i]=buffer[i+7]-48; else if (stare==false) for(int i=0; i<4; i++) lom[i]=buffer[i+7]-48; if((chyba==false)&&(stare==false)) { if(poc()==0) { printf("invalid\n"); chyba=true; } } if(chyba==false) { if((rc[4]==0)&&(rc[5]==0)) { printf("invalid\n"); chyba=true; } } if(chyba==false) { if((rc[2]==0)&&(rc[3]==0)) { printf("invalid\n"); chyba=true; } } if(chyba==false) { if(rc[0]==1) { printf("invalid\n"); chyba=true; } } if(chyba==false) { if (babacheck()==0) { printf("invalid\n"); chyba=true; } } if((chyba==false)&&(rokcheck()==0)) { printf("invalid\n"); chyba=true; } if((chyba==false)&&(dencheck()==0)) { printf("invalid\n"); chyba=true; } if((baba==true)&&(chyba==false)) printf("girl\n"); else if (chyba==false) printf("boy\n"); clean(); } return 0; } void rok() { for(int i=0; i<6; i++) rc[i]=buffer[i]-48; } int poc() { int cele = 0; cele=(lom[2])+(lom[1]*10)+(lom[0]*100)+(rc[5]*1000)+(rc[4]*10000)+(rc[3]*100000)+(rc[2]*1000000)+(rc[1]*10000000)+(rc[0]*100000000); int pom = cele % 11; pom *=10; pom += lom[3]; if(pom % 11 == 0) return 1; else return 0; } int babacheck() { if(rc[2]==5) baba = true; else if ((rc[2]==6)&&(rc[3]<3)) baba = true; else if ((rc[2]==1)&&(rc[3]<3)) baba=false; else if (rc[2]==0) baba=false; else return 0; return 1; } int rokcheck() { if(rc[0]==1) return 0; return 1; } int dencheck() { if(rc[4]>3) return 0; if((rc[4]==3)&&(rc[5]>1)) return 0; if((rc[4]==3)&&(rc[3]==2)&&((rc[2]==5)||(rc[2]==0))) return 0; if((rc[3]==2)&&((rc[2]==5)||(rc[2]==0))) { if(rc[5]==9) { int pom = 0; pom = rc[1]+rc[0]*10; if (pom>19) pom+=1900; else pom+=2000; if (pom % 4 != 0) return 0; } return 1; } if(((rc[4]==3)&&(rc[5]==1))&&((rc[3]==4)||(rc[3]==6)||(rc[3]==9)||((rc[3]==1)&&((rc[2]==1)||(rc[2]==6))))) return 0; return 1; } void clean () { stare = false; baba = false; chyba = false; for(int i=0; i<50 ; i++) buffer[i]=0; }