#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |