Submission #200406

#TimeUsernameProblemLanguageResultExecution timeMemory
200406hank55663Vision Program (IOI19_vision)C++14
20 / 100
61 ms5112 KiB
#include "vision.h" #include<bits/stdc++.h> #define pb push_back #define x first #define y second using namespace std; void construct_network(int H, int W, int K) { map<int,vector<int> > m; map<int,vector<int> > m2; map<int,int> mm,mm2; for(int i = 0;i<H;i++){ for(int j=0;j<W;j++){ m[i+j].pb(i*W+j); m2[i-j].pb(i*W+j); } } vector<int> vv; for(auto it:m){ mm[it.x]=add_or(it.y); } for(auto it:m2){ mm2[it.x]=add_or(it.y); } for(auto it:mm){ if(mm.find(it.x+K)!=mm.end()) vv.pb(add_and({it.x,mm[it.x+K]})); } for(auto it:mm){ if(mm2.find(it.x+K)!=mm2.end()) vv.pb(add_and({it.x,mm2[it.x+K]})); } int a=add_or(vv); vector<int> ok; ok.pb(a); for(auto it:mm){ vector<int> tmp; for(auto it2:mm){ if(abs(it.x-it2.x)>K)tmp.pb(it2.y); } if(tmp.size()){ int a=add_or(tmp); ok.pb(add_not(add_and({it.y,a}))); } } for(auto it:mm2){ vector<int> tmp; for(auto it2:mm2){ if(abs(it.x-it2.x)>K)tmp.pb(it2.y); } if(tmp.size()){ int a=add_or(tmp); ok.pb(add_not(add_and({it.y,a}))); } } add_and(ok); }
#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...