Submission #1312121

#TimeUsernameProblemLanguageResultExecution timeMemory
1312121eri16Mosaic (IOI24_mosaic)C++20
0 / 100
70 ms21296 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

vector<ll> mosaic(vector<int> X, vector<int> Y,vector<int> T, vector<int> B,vector<int> L, vector<int> R){
    
    ll n = X.size();
    
    ll row[3][200005];
    ll column[3][200005];
    
    for (int i=0; i<n; i++){row[0][i]=X[i];}
    for (int i=0; i<n; i++){column[0][i]=Y[i];}
    
    if (n>1){
        row[1][0]=column[0][1];
        column[1][0]=row[0][1];
        for (int i=1; i<n; i++){row[1][i]=1-(row[1][i-1] | row[0][i]);}
        for (int i=1; i<n; i++){column[1][i]=1-(column[1][i-1] | column[0][i]);}
    }
    if (n>2){
        row[2][0]=column[0][2];
        column[2][0]=row[0][2];
        for (int i=1; i<n; i++){row[2][i]=1-(row[2][i-1] | row[1][i]);}
        for (int i=1; i<n; i++){column[2][i]=1-(column[2][i-1] | column[1][i]);}
    }
    
    ll q = T.size();
    
    vector <ll> ans;
    
    ll t,b,l,r;
    
    for (int i=0; i<q; i++){
        
        t=T[i];
        b=B[i];
        l=L[i];
        r=R[i];
        
        if (t<=2){
            ans.push_back(row[t][l]);
        }
        else if (l<=2){
            ans.push_back(column[t][l]);
        }
        else{
            if (l>=t){
                ans.push_back(column[2][l-t+2]);
            }
            else{
                ans.push_back(row[2][t-l+2]);                
            }
        }        
    
    }
    return ans;
}   
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...