Submission #1207473

#TimeUsernameProblemLanguageResultExecution timeMemory
1207473AvianshVision Program (IOI19_vision)C++20
14 / 100
5 ms1096 KiB
#include "vision.h"
#include <bits/stdc++.h>

using namespace std;

void construct_network(int h, int w, int k) {
	//std::vector<int> Ns;
	//Ns = {0, 1};
	//int a = add_and(Ns);
	//Ns = {0, a};
	//int b = add_or(Ns);
	//Ns = {0, 1, b};
	//int c = add_xor(Ns);
	//add_not(c);
	auto conv = [&] (int i, int j){
        return i*w+j;
	};
	vector<int>hs(h);
	int ind = h*w;
    for(int i = 0;i<h;i++){
        vector<int>query;
        for(int j = 0;j<w;j++){
            query.push_back(conv(i,j));
        }
        hs[i]=ind;
        ind++;
        add_or(query);
    }
    vector<int>ws(w);
    for(int j = 0;j<w;j++){
        vector<int>query;
        for(int i = 0;i<h;i++){
            query.push_back(conv(i,j));
        }
        ws[j]=ind;
        ind++;
        add_or(query);
    }
    int hxor = ind++;
    add_xor(hs);
    int wxor = ind++;
    add_xor(ws);
    vector<int>nx;
    for(int i = 0;i<h-1;i++){
        nx.push_back(ind++);
        add_and({hs[i],hs[i+1]});
    }
    int ph = ind++;
    if(nx.size()){
        add_or(nx);
    }
    else{
        ind--;
    }
    nx.clear();
    for(int i = 0;i<w-1;i++){
        nx.push_back(ind++);
        add_and({ws[i],ws[i+1]});
    }
    int wh = ind++;
    if(nx.size())
        add_or(nx);
    else
        ind--;
    nx.clear();
    if(h==1||w==1)
        return;
    add_and({hxor,wh});
    add_and({wxor,ph});
    add_or({ind,ind+1});
}
#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...