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...