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<bits/stdc++.h>
#include "vision.h"
using namespace std;
int n,m,k;
int Zero,Jeden,temp;
vector<int>A,An,A1,A2;
vector<int>B,Bn,B1,B2;
vector<int>P;
vector<int>V[4];
int Num(int y, int x)
{
    return y*m+x;
}
bool Bit(int x, int u)
{
    return (x>>u)%2;
}
vector<int>Add(vector<int>A,vector<int>B)
{
    const int siz=(int)A.size();
    int ziom=Zero;
    vector<int>W;
    for(int i=0;i<siz;i++)
    {
        int a=A[i],b=B[i],c=ziom;
        int xorr=add_xor({a,b,c});
        int andd=add_and({a,b,c});
        int orr=add_or({a,b,c});
        int Nxorr=add_not(xorr);
        int u1=andd,u2=add_and({orr,Nxorr});
        W.push_back(xorr);
        ziom=add_or({u1,u2});
    }
    return W;
}
void construct_network(int N, int M, int K)
{
    n=N;
    m=M;
    k=K;
    for(int i=0;i<n;i++)
    {
        P.clear();
        for(int j=0;j<m;j++)
        {
            P.push_back(Num(i,j));
        }
        A.push_back(add_or(P));
    }
    for(int i=0;i<m;i++)
    {
        P.clear();
        for(int j=0;j<n;j++)
        {
            P.push_back(Num(j,i));
        }
        B.push_back(add_or(P));
    }
    temp=add_not(0);
    Jeden=add_or({0,temp});
    Zero=add_and({0,temp});
    An.resize(A.size());
    A1.resize(A.size());
    A2.resize(A.size());
    Bn.resize(B.size());
    B1.resize(B.size());
    B2.resize(B.size());
    for(int i=0;i<(int)A.size();i++)
    {
        An[i]=add_not(A[i]);
    }
    for(int i=0;i<(int)B.size();i++)
    {
        Bn[i]=add_not(B[i]);
    }
    P.clear();
    for(int i=0;i<(int)A.size();i++)
    {
        P.push_back(A[i]);
        A1[i]=add_and(P);
        P.pop_back();
        P.push_back(An[i]);
    }
    P.clear();
    for(int i=(int)A.size()-1;i>=0;i--)
    {
        P.push_back(A[i]);
        A2[i]=add_and(P);
        P.pop_back();
        P.push_back(An[i]);
    }
    P.clear();
    for(int i=0;i<(int)B.size();i++)
    {
        P.push_back(B[i]);
        B1[i]=add_and(P);
        P.pop_back();
        P.push_back(Bn[i]);
    }
    P.clear();
    for(int i=(int)B.size()-1;i>=0;i--)
    {
        P.push_back(B[i]);
        B2[i]=add_and(P);
        P.pop_back();
        P.push_back(Bn[i]);
    }
    for(int i=0;i<4;i++)
    {
        V[i].resize(10);
    }
    for(int i=0;i<10;i++)
    {
        P.clear();
        for(int j=0;j<n;j++)
        {
            if(Bit(j,i)==0){continue;}
            P.push_back(A1[j]);
        }
        if((int)P.size()==0){V[0][i]=Jeden;}
        else
        {
            temp=add_or(P);
            V[0][i]=add_not(temp);
        }
        P.clear();
        for(int j=0;j<n;j++)
        {
            if(Bit(j,i)==0){continue;}
            P.push_back(A2[j]);
        }
        if((int)P.size()==0){V[1][i]=Zero;}
        else
        {
            V[1][i]=add_or(P);
        }
        P.clear();
        for(int j=0;j<m;j++)
        {
            if(Bit(j,i)==0){continue;}
            P.push_back(B1[j]);
        }
        if((int)P.size()==0){V[2][i]=Jeden;}
        else
        {
            temp=add_or(P);
            V[2][i]=add_not(temp);
        }
        P.clear();
        for(int j=0;j<m;j++)
        {
            if(Bit(j,i)==0){continue;}
            P.push_back(B2[j]);
        }
        if((int)P.size()==0){V[3][i]=Zero;}
        else
        {
            V[3][i]=add_or(P);
        }
    }
    V[0]=Add(V[0],V[1]);
    V[0]=Add(V[0],V[2]);
    V[0]=Add(V[0],V[3]);
    k=(k-2+1024)%1024;
    P.clear();
    for(int i=0;i<10;i++)
    {
        if(Bit(k,i)){P.push_back(V[0][i]);}
        else{P.push_back(add_not(V[0][i]));}
    }
    add_and(P);
}
| # | 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... |