Submission #1246112

#TimeUsernameProblemLanguageResultExecution timeMemory
1246112ricardsjansonsVision Program (IOI19_vision)C++20
44 / 100
5 ms1732 KiB
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;


int h,w,k;

int fpt(int x,int y){
    return y*w+x;
}

void construct_network(int H, int W, int K) {
	h=H;
	w=W;
	k=K;
	int cor[w],cnx[w],ror[h],rnx[h];
	for(int i=0;i<w;i++){
        vector<int>ns;
        for(int j=0;j<h;j++){
            ns.push_back(fpt(i,j));
        }
        cor[i]=add_or(ns);
        cnx[i]=add_not(add_xor(ns));
	}
	for(int i=0;i<h;i++){
        vector<int>ns;
        for(int j=0;j<w;j++){
            ns.push_back(fpt(j,i));
        }
        ror[i]=add_or(ns);
        rnx[i]=add_not(add_xor(ns));
	}
	vector<int>c;
	for(int dx=0;dx<=k;dx++){
        int dy=k-dx;
        for(int i=0;i+dx<w;i++){
            for(int j=0;j+dy<h;j++){
                vector<int>ns{cor[i],cor[i+dx],ror[j],ror[j+dy]};
                if(dx==0){
                    ns.push_back(cnx[i]);
                }
                if(dy==0){
                    ns.push_back(rnx[j]);
                }
                c.push_back(add_and(ns));
            }
        }
    }
    add_or(c);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...