Submission #1204594

#TimeUsernameProblemLanguageResultExecution timeMemory
1204594aritro_Mosaic (IOI24_mosaic)C++20
0 / 100
1065 ms2162688 KiB
#include<bits/stdc++.h>
using namespace std;

vector<long long> mosaic(vector<int> x,vector<int> y,vector<int> t, vector<int> b,vector<int> l, vector<int> r){
    //subtask 5
    int n=x.size();
    int q=t.size();
    vector<long long> ans(q,0);
    bool xyz=1;
    for(int i=0;i<n;i++){
        if(x[i]!=0) xyz=0;
    }
    if(!xyz){
        vector<vector<int>> grid(n,vector<int>(n));
        for(int i=0;i<n;i++){
            grid[i][0]=y[i];
            for(int j=1;j<n;j++){
                if(i==0) grid[i][j]=x[j];
                else{
                    if(grid[i-1][j]==0&&grid[i][j-1]==0){
                        grid[i][j]=1;
                    }else grid[i][j]=0;
                }
            }
        }
        for(int query=0;query<q;query++){
            int cnt=0;
            for(int i=t[query];i<=b[query];i++){
                for(int j=l[query];j<=r[query];j++){
                    if(grid[i][j]==1) cnt++;
                }
            }
            ans[query]=cnt;
        }
        return ans;
    }
    for(int query=0;query<q;query++){
        if(r[query]==0||b[query]==0){
            ans[query]=0;
            continue;
        }
        bool f1=0,f2=0;
        if(t[query]==0){
            t[query]++;
            f1=1;
        }
        if(l[query]==0){
            l[query]++;
            f2=1;
        }
        long long cnt=(r[query]-l[query]+1)*(b[query]-t[query]+1);
        ans[query]=cnt/2;
        if(cnt%2==1){
            if((t[query]%2)==(l[query]%2)) ans[query]++;
        }
        if(f1) t[query]--;
        if(f2) l[query]--;
    }
    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...