#include "mosaic.h"
#include <bits/stdc++.h>
#define ll long long
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){
int n=x.size();
int q=t.size();
map<pair<int,int>,int>m;
vector<int>x1(n),y1(n);
if(n>1){
x1[0]=y[1];
for(int i=1;i<n;i++){
x1[i]=(x1[i-1]==0&&x[i]==0);
}
y1[0]=x[1];
for(int i=1;i<n;i++){
y1[i]=(y1[i-1]==0&&y[i]==0);
}
}
if(n>2){
int p=y1[2];
for(int i=2;i<n;i++){
m[{2,i}]=p=(p==0&&x1[i]==0);
}
p=x1[2];
for(int i=2;i<n;i++){
m[{i,2}]=p=(p==0&&y1[i]==0);
}
}
vector<ll>c(q, 0);
for(int i=0;i<q;i++){
if(t[i]==0){
c[i]=x[l[i]];
continue;
}
if(l[i]==0){
c[i]=y[t[i]];
continue;
}
if(t[i]==1){
c[i]=x1[l[i]];
continue;
}
if(l[i]==1){
c[i]=y1[t[i]];
continue;
}
int a=min(t[i],l[i]);
a-=2;
c[i]=m[{t[i]-a,l[i]-a}];
}
return c;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |