This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
void construct_network(int n, int m, int k) {
vector<vector<int> > t1(n+m-1),t2(n+m-1);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
t1[i+j].push_back(i*m+j);
t2[i-j+m-1].push_back(i*m+j);
}
}
vector<int> o1(n+m-1),o2(n+m-1);
for(int i=0;i<n+m-1;i++){
o1[i]=add_or(t1[i]);
o2[i]=add_or(t2[i]);
}
vector<int> z;
for(int i=0;i+k<n+m-1;i++){
vector<int> gg={o1[i],o1[i+k]};
z.push_back(add_and(gg));
gg={o2[i],o2[i+k]};
z.push_back(add_and(gg));
}
vector<int> ans;
ans.push_back(add_or(z));
int l=0;
int tt=-1,ff=-1;
vector<int> p;
for(int i=0;i<n+m-1;i++){
while(i-l>k){
if(tt==-1){
tt=add_or({o1[l]});
}
else{
tt=add_or({tt,o1[l]});
}
if(ff==-1){
ff=add_or({o2[l]});
}
else{
ff=add_or({ff,o2[l]});
}
l++;
}
if(tt!=-1){
p.push_back(add_and({o1[i],tt}));
p.push_back(add_and({o2[i],ff}));
}
}
if(p.size()){
int g=add_or(p);
ans.push_back(add_not(g));
}
add_and(ans);
}
# | 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... |