#include <bits/stdc++.h>
using namespace std;
string cross(string a,string b){
int L = a.size();
string ret(L,'.');
for(int i = 0;i < L;i++){
if(a[i] == b[i]){
ret[i] = a[i];
continue;
}
int J = false,O = false,I = false;
if(a[i] == 'J' || b[i] == 'J')J = true;
if(a[i] == 'O' || b[i] == 'O')O = true;
if(a[i] == 'I' || b[i] == 'I')I = true;
if(!J) ret[i] = 'J';
if(!O) ret[i] = 'O';
if(!I) ret[i] = 'I';
}
return ret;
}
int main(){
cin.tie(0);
ios_base::sync_with_stdio(0);
//start here
int N;cin >> N;
string a,b,c,ab,ac,bc,abc;
cin >> a >> b >> c;
ab = cross(a,b),ac = cross(a,c),bc = cross(b,c);
abc = cross(a,bc);
int Q;cin >> Q;
auto chk = [&](string &Ti){
return Ti == a || Ti == b || Ti == c || Ti == ab || Ti == bc || Ti == ac || Ti == abc;
};
string T;cin >> T;
// cout << T << endl;
cout << (chk(T)?"Yes\n":"No\n");
while(Q--){
int l,r;char c;
cin >> l >> r >> c;
l--;r--;
for(int i = l;i <= r;i++){
T[i] = c;
}
// cout << T << endl;
cout << (chk(T)?"Yes\n":"No\n");
}
}
# | 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... |