#include <bits/stdc++.h>
using namespace std;
int n,q;
string s[3];
string combine(string a, string b)
{
assert(a.size() == b.size());
string aux;
aux.resize(a.size());
for(int i=0;i<a.size();i++)
{
if(a[i]==b[i])
{
aux[i] = a[i];
}
else
{
for(char ch:{'J','O','I'})
if(ch!=a[i] && ch!=b[i])
aux[i] = ch;
}
}
return aux;
}
unordered_map<string,int> mp;
signed main()
{
ios_base::sync_with_stdio(0);cin.tie(0);
cin>>n>>s[0]>>s[1]>>s[2];
for(int ord=0;ord<3;ord++)
{
for(int mask=1;mask<(1<<3);mask++)
{
string idk;
bool gol=1;
for(int i=0;i<3;i++)
{
if((1<<i)&mask)
{
if(gol)
{
gol = 0;
idk = s[i];
}
else
{
idk = combine(idk, s[i]);
}
}
}
assert(!gol);
mp[idk]=1;
}
swap(s[0],s[1]);
swap(s[0],s[2]);
}
cin>>q;
string t;
cin>>t;
if(mp[t])
cout<<"Yes\n";
else
cout<<"No\n";
while(q--)
{
int le,ri;
char ch;
cin>>le>>ri>>ch;
le--;
ri--;
for(int i=le;i<=ri;i++)
t[i] = ch;
if(mp[t])
cout<<"Yes\n";
else
cout<<"No\n";
}
return 0;
}
/*
4
JOJO
JJOI
OJOO
3
IJOJ
1 4 O
2 2 J
2 4 I
*/
# | 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... |