#include #include #include # include using namespace std; char riadok[30]; int rok, mesiac, den, zvysok; bool spravnyformat(int length){ //cout << "Len = " << length<< endl; for (int i = 0; i < length; i++){ if(!isdigit(riadok[i])){ if ( !( (i == 6) && riadok[i] == '/') ) { //cout << "spravnyformat vracia false" << endl; return false; } } } return true; } int pocetDni[] = {31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; bool spravnyden(){ if (den == 0) return false; if (rok <=9) rok +=2000; else rok += 1900; if (mesiac == 2){ if (den > 28){ if (den > 29) return false; //mame 29 februar if (rok%4 == 0) { /*if (rok%100==0) { if (rok%400==0) return true; else return false; //((rok%100==0) && (rok%400==0)) } else return true;*/ } else return false; } } else { if (den > pocetDni[mesiac-1]) return false; } return true; } bool delitelny11(){ /* int parne = 0; int neparne = 0; for (int i = 0; i < 6; i++){ //cout << "r === " << (riadok[i] - '0') << endl; if (i%2==0) { parne = parne + (riadok[i]-'0'); } else neparne = neparne + (riadok[i]-'0'); } for (int i = 7; i < 11; i++){ //cout << "r === " << (riadok[i] - '0') << endl; if (i%2==0) neparne = neparne + (riadok[i]-'0'); else parne = parne + (riadok[i]-'0'); } //cout << "parne = " << parne << " a neparne = " << neparne << endl; return (parne == neparne); */ long long cislo = riadok[0] - '0'; for(int i = 1; i < 11; i++) { if(i == 6) continue; cislo = cislo * 10; cislo = cislo + riadok[i] - '0'; } //cout << riadok << "===== " << cislo << endl; return (!(cislo%11)); } int getint(int start, int end){ int ret = riadok[start] - '0'; for (int i = start+1; i < end; i++){ ret *= 10; ret += riadok[i] - '0'; } return ret; } int main(){ int length; bool chlapec, chyba, delit; while (true){ cin.getline(riadok, 30); length = strlen(riadok); if (length == 3){ //mozny end if (strcmp(riadok, "end") == 0) break; //dosiahli sme end cout << "invalid" << endl; } else if ((length == 10) || (length == 11)) { //spravne cislo ma dlzku 9 alebo 10 plus lomitko chyba = false; delit = false; chlapec = true; if (spravnyformat(length)){ //cout << "spracuvavam vstup" << endl; rok = getint(0,2); mesiac = getint(2,4); den = getint(4,6); zvysok = getint(7,length); //rok if ((rok >= 20) || (rok <= 9)){ if (rok >= 54 || rok<=9) { delit = true; if (length != 11){ cout << "invalid" << endl; continue; } } else { if (length != 10){ cout << "invalid" << endl; continue; } } if ( (mesiac >= 1 && mesiac <=12) || (mesiac >= 51 && mesiac <=62) ){ //mesiac if (mesiac > 12) { chlapec = false; mesiac -=50; } //den if (spravnyden()){ if (delit){ if (!delitelny11()) { chyba = true; // cout << "nie je delitelny 11" << endl; } } //cout << "spravny den" << endl; } else { //cout << "chyba spravny den" << endl; chyba = true; } } else chyba = true; } else chyba = true; } else chyba = true; if (chyba) { cout << "invalid" << endl; } else { cout << (chlapec?"boy":"girl") << endl; } } else { //nespravna dlzka vstupu -> invalid cout << "invalid" << endl; } } return 0; }