#include #include using namespace std; int num_month[]={31,28,31,30,31,30,31,31,30,31,30,31}; int num_monthl[]={31,29,31,30,31,30,31,31,30,31,30,31}; bool isValid(int year, int month, int day) { if(year >= 10 && year <= 19) return false; // if (month>50) month-=50; if (!(month>=1 && month<=12)) return false; if (!(day>=1 && day<=31)) return false; bool leap; if (year % 4 !=0) leap=false; else leap=true; if (leap) { if (day>num_monthl[month-1]) return false; } else { if (day>num_month[month-1]) return false; } return true; } int main() { int year, month, day, id, soucet; string vstup; string datum; bool invalid; while(1) { invalid = false; getline(cin, vstup); if(vstup == "end") break; // osetreni if(vstup.size() != 10 && vstup.size() != 11) { cout << "invalid\n"; continue; } for(int i = 0; i < 6; i++) { if(!isdigit(vstup[i])) { cout << "invalid\n"; invalid = true; } } if(invalid) continue; if(vstup[6] != '/') { cout << "invalid\n"; continue; } for(int i = 7; i < vstup.size(); i++) { if(!isdigit(vstup[i])) { cout << "invalid\n"; invalid = true; } } if(invalid) continue; // datum = vstup; if(vstup.size() == 10) datum.insert(7, "0"); // // nacist do cisel year = ((datum[0] - '0') * 10) + (datum[1] - '0'); month = ((datum[2] - '0') * 10) + (datum[3] - '0'); day = ((datum[4] - '0') * 10) + (datum[5] - '0'); id = ((datum[7] - '0') * 1000) + ((datum[8] - '0') * 100) + ((datum[9] - '0') * 10) + ((datum[10] - '0')); // if(!isValid(year, month, day)) { cout << "invalid\n"; continue; } if(year >= 20 && year <= 53) { if(vstup.size() != 10) { cout << "invalid\n"; continue; } } // pocitam datum.erase(6, 1); soucet = 0; for(int i = 0; i < datum.size(); i++) { if(i % 2 == 0) soucet += datum[i] - '0'; else soucet -= datum[i] - '0'; } if(soucet % 11 != 0) { cout << "invalid\n"; continue; } if(month > 12) cout << "girl\n"; else cout << "boy\n"; } return 0; }