Submission #1216600

#TimeUsernameProblemLanguageResultExecution timeMemory
1216600brintonVision Program (IOI19_vision)C++20
26 / 100
7 ms1476 KiB
#include <bits/stdc++.h> #include "vision.h" using namespace std; int distK(vector<int> v,int K){ vector<int> cur; for(int i = 0;i + K < v.size();i++){ cur.push_back(add_and({v[i],v[i+K]})); } return add_or(cur); } int lessK(vector<int> v,int K){ vector<int> ret; for(int i = 0;i + K < v.size();i++){ vector<int> cur; for(int d = 0;d <= K;d++){ cur.push_back({v[i+d]}); } ret.push_back(add_and({add_or(cur),add_not(add_xor(cur))})); } return add_or(ret); } void construct_network(int H, int W, int K) { auto id = [&](int i,int j){ return i*W+j; }; auto dist = [](int i1,int i2,int j1,int j2){ return abs(i1-i2)+abs(j1-j2); }; vector<int> diagnal1;// top_right to bottom_down for(int d = 0;d < H+W-1;d++){ int si,sj; if(d < W){ si = 0,sj = d; }else{ si = d-W+1,sj = W-1; } vector<int> cur; while(si >= 0 && sj >= 0 && si < H && sj < W){ cur.push_back(id(si,sj)); sj--; si++; } diagnal1.push_back(add_or(cur)); } vector<int> diagnal2;// top_right to bottom_down for(int d = 0;d < H+W-1;d++){ int si,sj; if(d < W){ si = 0,sj = W-1-d; }else{ si = d-W+1,sj = 0; } vector<int> cur; while(si >= 0 && sj >= 0 && si < H && sj < W){ cur.push_back(id(si,sj)); sj++; si++; } diagnal2.push_back(add_or(cur)); } int d1K = distK(diagnal1,K); int d2K = distK(diagnal2,K); int d1lessK = lessK(diagnal1,K); int d2lessK = lessK(diagnal2,K); int case1 = add_and({d1K,d2K}); int case2 = add_and({d1K,d2lessK}); int case3 = add_and({d1lessK,d2K}); add_or({case1,case2,case3}); }
#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...