#include #include char vstup[25]; bool load(); bool delim(int delka); int main() { while(true) { if(load()) { if(vstup[2]=='1'||vstup[2]=='0')printf("boy\n"); else printf("girl\n"); } else { if(vstup[0]=='e')break; printf("invalid\n"); } } printf("\n"); return 0; } bool load() { int rok=0; scanf("%s",vstup); int delka=strlen(vstup); if(delka!=10 && delka!=11) return false; if(!delim(delka))return false; if(vstup[6]!='/') return false; for(int i=0;i=0 && vstup[i]-'0'<=9); else return false; } } rok=10*(vstup[0]-'0')+(vstup[1]-'0'); int mesic=10*(vstup[2]-'0')+vstup[3]-'0'; if (mesic>50)mesic=mesic-50; int den=10*(vstup[4]-'0')+vstup[5]-'0'; int rok2; if(rok>=20)rok2=rok+1900; else rok2=rok+2000; if(mesic>12 || mesic ==0)return false; //printf("%d %d %d \n",rok2,mesic,den) ; if(rok2 % 400 ==0) { if(mesic==2 && den>29)return false; } else if(rok2 % 4==0 && rok2 % 100!=0) { if(mesic==2 && den>29)return false; } else { if(mesic==2 && den>28)return false; } switch (mesic) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: if(den>31)return false;break; case 4: case 6: case 9: case 11: if(den>30)return false;break; } if(den==0)return false; //printf("rok %d %d %d\n",rok,vstup[0]-'0',vstup[1]-'0'); if(rok2<1920 || rok2>2009)return false; if(rok2>1919 &&rok2<1954 && delka!=10)return false; if(rok2>1953 && rok2<2010 && delka!=11)return false; return true; } bool delim(int delka) { //printf("delka %d\n\n",delka); int pole[11]; pole[0]=vstup[0]-'0'; pole[1]=vstup[1]-'0'; pole[2]=vstup[2]-'0'; pole[3]=vstup[3]-'0'; pole[4]=vstup[4]-'0'; pole[5]=vstup[5]-'0'; pole[6]=vstup[7]-'0'; pole[7]=vstup[8]-'0'; pole[8]=vstup[9]-'0'; if(delka==11) pole[9]=vstup[10]-'0'; else { pole[9]=pole[8]; pole[8]=pole[7]; pole[7]=pole[6]; pole[6]=0; } //for(int i=0;i<10;i++)printf("%d",pole[i]); int pom1=0; pom1=pole[0]*10+pole[1]; for(int i=0;i<9;i++) { pom1=pom1-((pom1/11)*11); if(i+2>9)pom1=pom1*10; else pom1=pom1*10+pole[i+2]; //printf("\n %d \n",pom1); } if (pom1!=0)return false; return true; }