Submission #211859

#TimeUsernameProblemLanguageResultExecution timeMemory
211859MarcoMeijerVision Program (IOI19_vision)C++14
0 / 100
14 ms1280 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; //macros typedef long long ll; typedef pair<int, int> ii; typedef tuple<int, int, int> iii; typedef vector<int> vi; typedef vector<ii> vii; typedef vector<iii> viii; typedef vector<ll> vll; #define REP(a,b,c) for(int a=int(b); a<int(c); a++) #define RE(a,c) REP(a,0,c) #define RE1(a,c) REP(a,1,c+1) #define REI(a,b,c) REP(a,b,c+1) #define REV(a,b,c) for(int a=int(c-1); a>=int(b); a--) #define INF 1e9 #define pb push_back #define fi first #define se second mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const int MX=500; vi diagonal[2]; int dist[2][MX]; int h, w, k; vi ans; int getPos(int i, int j) { return j+i*w; } void construct_network(int H, int W, int K) { h=H, w=W, k=K; RE(i,w+h-1) { int x=i, y=0; if(x>=h) { y=x-h+1; x=h-1; } vi f; while(x>=0 && y<w) { f.pb(getPos(x,y)); x--; y++; } diagonal[0].pb(add_and(f)); } RE(i,w+h-1) { int x=0, y=w-i-1; if(y<0) { x=-y; y=0; } vi f; while(x<h && y<w) { f.pb(getPos(x,y)); x++; y++; } diagonal[1].pb(add_and(f)); } RE(i,2) REP(j,1,k+1) { vi f; RE(l,diagonal[i].size()-j) { vi g; g.pb(diagonal[i][l]); g.pb(diagonal[i][l+j]); f.pb(add_and(g)); } dist[i][j] = add_or(f); } RE(i,2) { vi f; f.pb(dist[i][k]); vi g; RE(j,k) g.pb(dist[!i][j]); f.pb(add_or(g)); ans.pb(add_and(f)); } add_or(ans); }
#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...