#include<iostream>
#include<algorithm>
#include<vector>
#include "vision.h"
using namespace std;
const int MAX_N=2e3+3;
int n,m,k;
int tonum(int i,int j)
{
return i*m+j;
}
int xorcol[MAX_N];
int xorrow[MAX_N];
int allzeroxorrow,allzeroxorcol;
void construct_network(int H, int W, int K)
{
n=H;
m=W;
k=K;
vector<int>xorrowcells;
for(int i=0;i<n;i++)
{
vector<int>cells;
for(int j=0;j<m;j++)
{
cells.push_back(tonum(i,j));
}
xorrow[i]=add_xor(cells);
xorrowcells.push_back(xorrow[i]);
}
vector<int>xorcolcells;
for(int j=0;j<m;j++)
{
vector<int>cells;
for(int i=0;i<n;i++)
{
cells.push_back(tonum(i,j));
}
xorcol[j]=add_xor(cells);
xorcolcells.push_back(xorcol[j]);
}
allzeroxorrow=add_or(xorrowcells);
allzeroxorrow=add_not(allzeroxorrow);
allzeroxorcol=add_or(xorcolcells);
allzeroxorcol=add_not(allzeroxorcol);
vector<int>androwcons;
for(int i=1;i<n;i++)
{
androwcons.push_back(add_and({xorrowcells[i-1],xorrowcells[i]}));
}
vector<int>andcolcons;
for(int j=1;j<m;j++)
{
andcolcons.push_back(add_and({xorcolcells[j-1],xorcolcells[j]}));
}
int consrow1,conscol1;
consrow1=add_or(androwcons);
consrow1=add_and({consrow1,allzeroxorcol});
conscol1=add_or(andcolcons);
conscol1=add_and({conscol1,allzeroxorrow});
add_or({conscol1,consrow1});
}
| # | 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... |