Submission #1147733

#TimeUsernameProblemLanguageResultExecution timeMemory
1147733guagua0407Crossing (JOI21_crossing)C++20
26 / 100
7077 ms2924 KiB
//#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define f first
#define s second
#define all(x) x.begin(),x.end()
#define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);

int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};

void setIO(string s) {
    freopen((s + ".in").c_str(), "r", stdin);
    freopen((s + ".out").c_str(), "w", stdout);
}

string op(string a,string b){
    int sz=(int)a.size();
    string c;
    for(int i=0;i<sz;i++){
        if(a[i]==b[i]){
            c+=a[i];
        }
        else{
            for(auto cc:{'J','O','I'}){
                if(a[i]!=cc and b[i]!=cc){
                    c+=cc;
                    break;
                }
            }
        }
    }
    return c;
}

int main() {_
    int n;
    cin>>n;
    vector<string> S(3);
    for(int i=0;i<3;i++){
        cin>>S[i];
    }
    function<string(int,int)> op=[&](int aa,int bb){
        string a=S[aa];
        string b=S[bb];
        string c;
        for(int i=0;i<n;i++){
            if(a[i]==b[i]){
                c+=a[i];
            }
            else{
                for(auto cc:{'J','O','I'}){
                    if(a[i]!=cc and b[i]!=cc){
                        c+=cc;
                        break;
                    }
                }
            }
        }
        return c;
    };
    S.push_back(op(0,1));
    S.push_back(op(1,2));
    S.push_back(op(2,0));
    S.push_back(op(3,2));
    S.push_back(op(4,0));
    S.push_back(op(5,1));
    int q;
    cin>>q;
    function<void(string)> check=[&](string a){
        for(auto str:S){
            if(a==str){
                cout<<"Yes"<<'\n';
                return;
            }
        }
        cout<<"No"<<'\n';
        return;
    };
    string T;
    cin>>T;
    check(T);
    for(int i=0;i<q;i++){
        int l,r;
        char c;
        cin>>l>>r>>c;
        l--;
        r--;
        for(int  j=l;j<=r;j++){
            T[j]=c;
        }
        check(T);
    }
    return 0;
}
//maybe its multiset not set
//yeeorz
//diaoborz

Compilation message (stderr)

Main.cpp: In function 'void setIO(std::string)':
Main.cpp:15:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |     freopen((s + ".in").c_str(), "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:16:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |     freopen((s + ".out").c_str(), "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...