Submission #422140

#TimeUsernameProblemLanguageResultExecution timeMemory
422140pliamVision Program (IOI19_vision)C++14
8 / 100
1 ms308 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; #define MAXH 205 #define MAXW 205 int h,w,k; set<pair<int,int>> used; vector<int> diag; vector<int> answers; int id(int x,int y){//x in 0..h-1, y in 0..w-1 return x*w+y; } bool inbounds(int x,int y){ return 0<=x&&x<h&&0<=y&&y<w; } void ins(int x,int y,int dx,int dy){ int x_=x+dx; int y_=y+dy; if(inbounds(x_,y_)&&!used.count({id(x,y),id(x_,y_)})){ diag.push_back(id(x_,y_)); used.insert({id(x,y),id(x_,y_)}); used.insert({id(x_,y_),id(x,y)}); } } void construct_network(int H, int W, int K) { h=H; w=W; k=K; used.clear(); answers.clear(); int x,y; x=y=0; diag.clear(); for(int i=1;i<k;i++){ ins(x,y,i,k-i); ins(x,y,-i,k-i); ins(x,y,i,-k+i); ins(x,y,-i,-k+i); } ins(x,y,0,k); ins(x,y,0,-k); ins(x,y,k,0); ins(x,y,-k,0); int ans_or=add_or(diag); add_and({id(x,y),ans_or}); }
#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...