#include #include #include using namespace std; #pragma warning(push) #pragma warning(disable: 4996) int n; string primulCuv, alDoileaCuv, alTreileaCuv; bool is_number(const std::string& s) { std::string::const_iterator it = s.begin(); while (it != s.end() && isdigit(*it)) ++it; return !s.empty() && it == s.end(); } string stringToUpper(string s) { for (unsigned int l = 0; l < s.length(); l++) { s[l] = toupper(s[l]); } return s; } int main() { //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); cin >> n; for (int i = 0; i < n; ++i) { cin >> primulCuv >> alDoileaCuv >> alTreileaCuv; if (!(primulCuv == "B" || (primulCuv.length() == 2 && primulCuv[0] >= 'A' && primulCuv[0] <= 'Z' && primulCuv[1] >= 'A' && primulCuv[1] <= 'Z'))) { cout << "Incorrect!" << endl; continue; } if (!is_number(alDoileaCuv)) { cout << "Incorrect!" << endl; continue; } if (primulCuv == "B" && (alDoileaCuv.length() < 2 || alDoileaCuv.length() > 3)) { cout << "Incorrect!" << endl; continue; } if (primulCuv != "B" && alDoileaCuv.length() != 2) { cout << "Incorrect!" << endl; continue; } if (alTreileaCuv.length() != 3 || (stringToUpper(alTreileaCuv) != alTreileaCuv)) { cout << "Incorrect!" << endl; continue; } cout << "Correct!" << endl; } return 0; } #pragma warning(pop)