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<algorithm>
#define eb emplace_back
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
using namespace std;
typedef long long ll;
typedef pair<int,int>pi;
typedef pair<ll,ll>pl;
const ll inf=1e18;
void construct_network(int H,int W,int K)
{
vector<int>r,c;
vector<int>q,q1,q2;
int zero;
zero=add_xor(vector<int>(2,0));
int fs;
int i,j;
int n=H+W-1;
for(i=0;i<n;i++)
{
for(j=0;j<H;j++)
{
if(i-j>=W&&j<=i)
continue;
q.eb(j*W+i-j);
}
r.eb(add_or(q));
q.clear();
}
for(i=0;i<n;i++)
{
for(j=0;j<H&&j<=i;j++)
{
if(i-j>=W)
continue;
q.eb(j*W+W-i+j-1);
}
c.eb(add_or(q));
q.clear();
}
for(i=0;i+K<n;i++)
{
q.eb(r[i]);
q.eb(r[i+K]);
q1.eb(add_and(q));
q.clear();
q.eb(c[i]);
q.eb(c[i+K]);
q1.eb(add_and(q));
q.clear();
}
fs=zero;
for(i=K;++i<n;)
{
q.eb(fs);
q.eb(r[i-K-1]);
fs=add_or(q);
q.clear();
q.eb(fs);
q.eb(r[i]);
q2.eb(add_and(q));
q.clear();
}
fs=zero;
for(i=K;++i<n;)
{
q.eb(fs);
q.eb(c[i-K-1]);
fs=add_or(q);
q.clear();
q.eb(fs);
q.eb(c[i]);
q2.eb(add_and(q));
q.clear();
}
q.eb(add_or(q1));
if(!q2.empty())
q.eb(add_not(add_or(q2)));
add_and(q);
q.clear();
return;
}
# | 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... |