Submission #573165

#TimeUsernameProblemLanguageResultExecution timeMemory
573165Dan4LifeCrossing (JOI21_crossing)C++17
26 / 100
7043 ms4208 KiB
#include <bits/stdc++.h>
using namespace std;
string s[10], t;
int n, q, l, r;
char c;

string fun(string a, string b){
    string lol = "JOI", s = "";
    for(int i = 0; i < (int)a.size(); i++){
        if(a[i]==b[i]) { s+=a[i]; continue; }
        string x = ""; x+=a[i], x+=b[i];
        if(x[0]>x[1]) swap(x[0],x[1]);
        if(x=="IJ") s+='O';
        else if(x=="JO") s+='I';
        else s+='J';
    }
    return s;
}

bool chk(string a, string b){
    return a==b;
}

int32_t main()
{
    ios_base::sync_with_stdio(false); cin.tie(0);
    cin >> n >> s[1] >> s[2] >> s[3];
    s[4] = fun(s[1], s[2]), s[5] = fun(s[1], s[3]);
    s[6] = fun(s[2], s[3]), s[7] = fun(s[4], s[3]);
    s[8] = fun(s[5], s[2]), s[9] = fun(s[6], s[1]);
    cin >> q >> t; bool ok = false;
    for(int i = 1; i <= 9; i++) ok|=chk(t,s[i]);
    cout << (ok?"Yes":"No") << "\n";
    while(q--){
        cin >> l >> r >> c; ok = false;
        for(int i = l-1; i < r; i++) t[i]=c;
        for(int i = 1; i <= 9; i++) ok|=chk(t,s[i]);
        cout << (ok?"Yes":"No") << "\n";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...