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;
#define pb push_back
const int lim=210;
void construct_network(int H, int W, int K) {
#define tr(x,y) ((x)*W+(y))
#define check(x,y) (0<=(x)&&(x)<H&&0<=(y)&&(y)<W)
vector<int>all;
for(int i=0;i<H;i++){
for(int j=0;j<W;j++){
vector<int>distdudes;
//cerr<<i<<" "<<j<<" : \n";
for(int k=0;k<K;k++){
if(check(i-K+k,j+k)){
distdudes.pb(tr(i-K+k,j+k));
//cerr<<i-K+k<<" "<<j+k<<" :: "<<tr(i-K+k,j+k)<<"\n";
}
}
for(int k=0;k<=K;k++){
if(check(i+k,j+K-k)){
distdudes.pb(tr(i+k,j+K-k));
//cerr<<i+k<<" "<<j+K-k<<" :: "<<tr(i+k,j+K-k)<<"\n";
}
}
//cerr<<"\n";
if(!distdudes.size())continue;
int oth=distdudes.size()==1?distdudes[0]:add_or(distdudes);
all.pb(add_and({tr(i,j),oth}));
}
}
add_or(all);
}
/*
void construct_network(int H, int W, int K) {
std::vector<int> Ns;
Ns = {0, 1};
int a = add_and(Ns);
Ns = {0, a};
int b = add_or(Ns);
Ns = {0, 1, b};
int c = add_xor(Ns);
add_not(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... |