#include #include using namespace std; char input[20]; bool isBackslash(); int main() { char predlom[7]; char zalom[5]; float rc = 0; int den; int mesic; int rok; while (scanf("%s",input) != EOF) { if ( (input[0]=='e') && (input[1]=='n') && (input[2]=='d') ) return 0; if ((strlen(input) != 11) && (strlen(input) != 10) ) { printf("invalid\n"); continue; } if (!isBackslash()) { printf("invalid\n"); continue; } if ( (input[0]=='e') && (input[1]=='n') && (input[2]=='d') ) return 0; float x = 0.0001; if (strlen(input) == 11) { for (int i = 10; i >= 0; i--) { if (i == 6) continue; rc = rc + (input[i]-'0') * x; x*=10; } //if (!( rc % 0.0011 )) { printf("invalid\n"); continue; } } int k = 0; for (int i = 0; i < 6; i++) { predlom[i] = input[k++]; } predlom[6]='\0'; k++; for (int i = 0; i < 4; i++) { zalom[i] = input[k++]; } zalom[4]='\0'; rok = (predlom[0]-'0')*10 + (predlom[1]-'0'); mesic = (predlom[2]-'0')*10 + (predlom[3]-'0'); den = (predlom[4]-'0')*10 + (predlom[5]-'0'); if ((strlen(zalom) > 3) && (rok <= 53) && (rok > 10)) { printf("invalid\n"); continue; } if ((strlen(zalom) == 3) && ((rok >= 54) || (rok < 10))) { printf("invalid\n"); continue; } if ((rok < 20) && (rok > 10)) { printf("invalid\n"); continue; } if (((mesic < 1) || (mesic > 12)) && ((mesic < 51) || (mesic > 62))) { printf("invalid\n"); continue; } if (((mesic == 2) || (mesic == 52)) && (den > 29)) { printf("invalid\n"); continue; } if ((mesic == 2) && (den == 29) && (rok % 4)) { printf("invalid\n"); continue; } switch(mesic) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: case 51: case 53: case 55: case 57: case 58: case 60: case 62: if(den > 31) { printf("invalid\n"); continue; } break; case 4: case 6: case 9: case 11: case 54: case 56: case 59: case 61: if(den > 30) { printf("invalid\n"); continue; } break; } if ((mesic > 0) && (mesic < 13) ) printf("boy\n"); if ((mesic > 50) && (mesic < 63) ) printf("girl\n"); } return 0; } bool isBackslash() { int size = strlen(input); int bslashCount = 0; int position = 0; for (int i = 0; i < size; i++) { if(input[i] == '/') { bslashCount++; position = i; } } if (bslashCount != 1) return 0; if (position != 6) return 0; return 1; }