Submission #1280342

#TimeUsernameProblemLanguageResultExecution timeMemory
1280342am_aadvikCrossing (JOI21_crossing)C++20
26 / 100
7086 ms3080 KiB
#include <iostream> #include <map> #include<vector> using namespace std; string op(string& a, string& b) { string res = "", q = "JOI"; for (int i = 0; i < a.length(); ++i) if (a[i] == b[i]) res += a[i]; else for (auto x : q) if ((a[i] != x) && (b[i] != x)) res += x; return res; } void solve(string& s, vector<string>& a) { for (auto x : a) if (s == x) { cout << "Yes" << endl; return; } cout << "No" << endl; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; vector<string> a(3); cin >> a[0] >> a[1] >> a[2]; map<string, bool> mp; for (auto x : a) mp[x] = 1; while (1) { bool c = 0; for (auto x : a) { for (auto y : a) { auto r = op(x, y); if (!mp[r]) { c = 1, a.push_back(r), mp[r] = 1; break; } } if (c) break; } if (!c) break; } int q; cin >> q; string s; cin >> s; solve(s, a); while (q--) { int l, r; cin >> l >> r; --l, --r; char c; cin >> c; for (int i = l; i <= r; ++i) s[i] = c; solve(s, a); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...