Submission #780738

#TimeUsernameProblemLanguageResultExecution timeMemory
780738Rafi22Crossing (JOI21_crossing)C++14
26 / 100
7083 ms11832 KiB
#include <bits/stdc++.h>

using namespace std;

#define endl '\n'
#define st first
#define nd second
#define pb push_back
#define sz(x) (int)(x).size()
#define all(x) (x).begin(), (x).end()
#define ll long long
ll mod=1000000007;
int inf=1000000007;
ll infl=1000000000000000007;

map<vector<int>,bool>odw;

const int N=200007,pot=1<<18;

int a[N][3];
int b[N][9];
int c[N];
int id[300];

int n;

void get()
{
    bool ans=0;
    for(int j=0;j<9;j++)
    {
        bool is=1;
        for(int i=1;i<=n;i++) is&=b[i][j]==c[i];
        ans|=is;
    }
    if(ans) cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    vector<vector<int>>V;
    V.pb({1,0,0});
    odw[{1,0,0}]=1;
    V.pb({0,1,0});
    odw[{0,1,0}]=1;
    V.pb({0,0,1});
    odw[{0,0,1}]=1;
    for(int i=0;i<sz(V);i++)
    {
        for(int j=0;j<i;j++)
        {
            vector<int>X(3);
            for(int l=0;l<3;l++)
            {
                X[l]=(-V[i][l]-V[j][l]+6)%3;
            }
            if(!odw[X])
            {
                V.pb(X);
                odw[X]=1;
            }
        }
    }
    id['J']=0;
    id['O']=1;
    id['I']=2;
    cin>>n;
    string s;
    for(int j=0;j<3;j++)
    {
        cin>>s;
        for(int i=1;i<=n;i++) a[i][j]=id[s[i-1]];
    }
    for(int j=0;j<9;j++)
    {
        for(int i=1;i<=n;i++)
        {
            for(int l=0;l<3;l++)
            {
                b[i][j]=(b[i][j]+a[i][l]*V[j][l])%3;
            }
        }
    }
    int q;
    cin>>q>>s;
    for(int i=1;i<=n;i++) c[i]=id[s[i-1]];
    get();
    while(q--)
    {
        int l,r;
        char x;
        cin>>l>>r>>x;
        for(int i=l;i<=r;i++) c[i]=id[x];
        get();
    }

    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:76:48: warning: array subscript has type 'char' [-Wchar-subscripts]
   76 |         for(int i=1;i<=n;i++) a[i][j]=id[s[i-1]];
      |                                                ^
Main.cpp:90:41: warning: array subscript has type 'char' [-Wchar-subscripts]
   90 |     for(int i=1;i<=n;i++) c[i]=id[s[i-1]];
      |                                         ^
Main.cpp:97:39: warning: array subscript has type 'char' [-Wchar-subscripts]
   97 |         for(int i=l;i<=r;i++) c[i]=id[x];
      |                                       ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...