Submission #1189472

#TimeUsernameProblemLanguageResultExecution timeMemory
1189472alexddVision Program (IOI19_vision)C++20
0 / 100
25 ms4744 KiB
#include <bits/stdc++.h> #include "vision.h" using namespace std; void construct_network(int H, int W, int K) { vector<int> linii,coloane; for(int lin=1;lin<H;lin++) { vector<int> v; for(int i=0;i<lin;i++) for(int j=0;j<W;j++) v.push_back(i*W+j); int sus = add_or(v); v.clear(); for(int i=lin;i<H;i++) for(int j=0;j<W;j++) v.push_back(i*W+j); int jos = add_or(v); linii.push_back(add_and({sus,jos})); } for(int col=1;col<W;col++) { vector<int> v; for(int i=0;i<col;i++) for(int j=0;j<H;j++) v.push_back(j*W+i); int st = add_or(v); v.clear(); for(int i=col;i<W;i++) for(int j=0;j<H;j++) v.push_back(j*W+i); int dr = add_or(v); coloane.push_back(add_and({st,dr})); } int zero = add_and({coloane[0],add_not(coloane[0])}); int unu = add_not(zero); vector<int> combinat; for(int x:linii) combinat.push_back(x); for(int x:coloane) combinat.push_back(x); vector<int> cnt; for(int lun=0;(1<<lun)<=(H+W-2);lun++) cnt.push_back(add_not(unu)); sort(cnt.begin(),cnt.end()); for(int i=1;i<cnt.size();i++) if(cnt[i] == cnt[i-1]) while(1); //for(int x:cnt) cerr<<x<<" zzz\n"; for(int x:combinat) { vector<int> newcnt; for(int i=0;i<cnt.size();i++) { vector<int> aux; aux.push_back(x); for(int j=0;j<i;j++) aux.push_back(cnt[j]); newcnt.push_back(add_xor({add_and(aux),cnt[i]})); } cnt = newcnt; } vector<int> rez; for(int i=0;i<cnt.size();i++) if((1<<i)&K) rez.push_back(cnt[i]); else rez.push_back(add_not(cnt[i])); if(rez.empty()) while(1); add_and(rez); } /* 2 2 1 0 0 1 1 0 0 0 1 0 0 1 0 -1 2 3 3 0 0 1 2 1 0 0 2 0 0 1 1 -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...