Submission #474064

#TimeUsernameProblemLanguageResultExecution timeMemory
474064blueCrossing (JOI21_crossing)C++17
26 / 100
7069 ms10220 KiB
#include <iostream> #include <vector> #include <string> using namespace std; int N; int op(int a, int b) { if(a == b) return a; else return 0+1+2 - a - b; } vector<int> op(vector<int> a, vector<int> b) { vector<int> r(N); for(int i = 0; i < N; i++) r[i] = op(a[i], b[i]); return r; } vector<int> to_num(string s) { vector<int> r(N); for(int i = 0; i < N; i++) { if(s[i] == 'J') r[i] = 0; else if(s[i] == 'O') r[i] = 1; else if(s[i] == 'I') r[i] = 2; } return r; } vector<int> S[9]; void brute_check(vector<int> G) { for(int i = 0; i < 9; i++) if(S[i] == G) { cout << "Yes\n"; return; } cout << "No\n"; } int main() { cin >> N; for(int i = 0; i < 3; i++) { string T; cin >> T; S[i] = to_num(T); } S[3] = op(S[1], S[2]); S[4] = op(S[0], S[2]); S[5] = op(S[0], S[1]); S[6] = op(S[0], S[3]); S[7] = op(S[1], S[4]); S[8] = op(S[2], S[5]); // for(int z = 0; z < 9; z++) // { // for(int i = 0; i < N; i++) cerr << S[z][i]; // cerr << '\n'; // } // cerr << '\n'; int Q; cin >> Q; string T; cin >> T; brute_check(to_num(T)); // for(int i = 0; i < N; i++) cerr << to_num(T)[i]; // cerr << '\n'; for(int q = 1; q <= Q; q++) { int L, R; char C; cin >> L >> R >> C; for(int i = L-1; i <= R-1; i++) T[i] = C; brute_check(to_num(T)); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...