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;
int n,m;
const int maxn=400+10;
int solve(int k){
vector<int>all0[maxn],all1[maxn],ps0,ps1;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
all0[i+j].push_back(i*m+j);
all1[i+(m-j-1)].push_back(i*m+j);
}
}
vector<int>ret;
for(int i=k;i<=n+m-2;i++){
// cout<<i<<" "<<(int)all0[i-k].size()<<" "<<all1[i-k].size()<<" "<<(int)all0[i].size()<<" "<<(int)all1[i].size()<<endl;
ps0.push_back(add_or(all0[i-k]));
ps1.push_back(add_or(all1[i-k]));
ret.push_back(add_and({add_or(all0[i]),add_or(ps0)}));
ret.push_back(add_and({add_or(all1[i]),add_or(ps1)}));
}
return add_or(ret);
}
void construct_network(int H, int W, int fas) {
n=H;
m=W;
if(fas==(n+m-2)){
solve(fas);
}else{
add_and({solve(fas),add_not(fas+1)});
}
}
# | 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... |