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<vector>
using namespace std;
using V=std::vector<int>;
int F,T,KK;
int adder(int x,int c)
{
for(int i=0;i<9;++i)
{
add_xor(V{x+2*i,c});
c=add_and(V{x+2*i,c});
}
return c-17;
}
int alloc()
{
int c=add_not(F)+1;
for(int i=0;i<18;++i)
add_not(T);
return c;
}
void construct_network(int H, int W, int K)
{
add_not(0);
F=add_and(V{0,H*W});
T=add_not(F);
KK=alloc();
int run=alloc();
for(int i=0;i<H;++i)
{
V e;
for(int j=0;j<W;++j)e.push_back(i*W+j);
int rr=add_xor(e);
run=add_xor(V{run,rr});
KK=adder(KK,run);
}
for(int i=0;i<W;++i)
{
V e;
for(int j=0;j<H;++j)e.push_back(j*W+i);
int rr=add_xor(e);
run=add_xor(V{run,rr});
KK=adder(KK,run);
}
V ans;
for(int i=0;i<9;++i)
ans.push_back(add_not(add_xor(V{KK+2*i,(K&(1<<i))?T:F})));
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... |