#include <stdbool.h> #include <stdint.h> #include <stdio.h> #include <string.h> bool checkRepeat(char* s) { bool result = false; uint32_t length; int i,j,k; length = strlen(s); for (i=0; i<length-3; ++i) { for (j=i+3; j<length-3; ++j) { if (s[i] == s[j]) { for (k=0; k<3; ++k) { if (s[i+k] != s[j+k]) { break; } else {} } if (k==3) { result = true; break; } } else {} } if (result) { break; } else {} } return result; } int main() { char s[101]; uint32_t length; bool num,up,low,c,repeat; uint32_t type = 0; while (scanf("%s", s) != EOF) { num=false,up=false,low=false,c=false; type = 0; length = strlen(s); for (int i=0; i<length; ++i) { if (s[i]>='0' && s[i]<='9') { if (!num) { num = true; type++; } else {} } else if (s[i]>='A' && s[i]<='Z') { if (!up) { up = true; type++; } else {} } else if (s[i]>='a' && s[i]<='z') { if (!low) { low = true; type++; } else {} } else if (s[i]!=' ' && s[i]!='\n') { if (!c) { c = true; type++; } else {} } else {} } repeat = checkRepeat(s); if (repeat || type<3 || length<=8) { printf("NG\n"); } else { printf("OK\n"); } memset(s, 0, sizeof(char)*length); } return 0; }