#include "vision.h"
//#include "grader.cpp"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define f first
#define s second
#define all(x) x.begin(),x.end()
#define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
void construct_network(int n, int m, int k) {
vector<int> X(n+m-1),Y(n+m-1);
for(int x=0;x<n+m-1;x++){
vector<int> tmp;
for(int i=0;i<n;i++){
int j=x-i;
if(j<0 or j>=m) continue;
tmp.push_back({i*m+j});
}
X[x]=add_or(tmp);
}
for(int x=-(m-1);x<n;x++){
vector<int> tmp;
for(int i=0;i<n;i++){
int j=i-x;
if(j<0 or j>=m) continue;
tmp.push_back({i*m+j});
}
Y[x+m-1]=add_or(tmp);
}
auto go=[&](int K){
int xx,yy;
{
vector<int> ok;
for(int x=0;x+K<n+m-1;x++){
vector<int> tmp;
for(int i=x;i<=x+K;i++){
tmp.push_back(X[i]);
}
ok.push_back(add_and({add_or(tmp),add_not(add_xor(tmp))}));
}
xx=add_or(ok);
}
{
vector<int> ok;
for(int x=0;x+K<n+m-1;x++){
vector<int> tmp;
for(int i=x;i<=x+K;i++){
tmp.push_back(Y[i]);
}
ok.push_back(add_and({add_or(tmp),add_not(add_xor(tmp))}));
}
yy=add_or(ok);
}
return add_and({xx,yy});
};
int a=go(k);
int b=go(k-1);
int c=add_not(b);
add_and({a,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... |