Submission #1282270

#TimeUsernameProblemLanguageResultExecution timeMemory
1282270MMihalevMosaic (IOI24_mosaic)C++20
0 / 100
72 ms12736 KiB
#include<iostream>
#include<algorithm>
#include<vector>
#include "mosaic.h"
using namespace std;
const int MAX_N=2e5+5;
int n,q;
vector<long long>ans;
std::vector<long long> mosaic(std::vector<int> X, std::vector<int> Y,std::vector<int> T, std::vector<int> B,std::vector<int> L, std::vector<int> R)
{
    n=X.size();
    q=T.size();
    ans.resize(q);

    for(int i=1;i<=q;i++)
    {
        if(T[i-1]==B[i-1] && T[i-1]==0)continue;
        if(L[i-1]==R[i-1] && R[i-1]==0)continue;

        if(T[i-1]==0)T[i-1]++;
        if(L[i-1]==0)L[i-1]++;

        int topleftcell=((T[i-1]%2==1 && L[i-1]%2==1) ? 1 : 0);
        long long firstrow=((R[i-1]-L[i-1]+1)%2==0 ? (R[i-1]-L[i-1]+1)/2 : (R[i-1]-L[i-1]+1)/2+topleftcell);
        long long secondrow=(R[i-1]-L[i-1]+1)-firstrow;

        ans[i-1]=((long long)(1LL*B[i-1]-1LL*T[i-1]+1)/2)*(firstrow+secondrow)+((1LL*B[i-1]-1LL*T[i-1]+1)%2)*firstrow;
    }

    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...