Submission #293109

#TimeUsernameProblemLanguageResultExecution timeMemory
293109AlanChenVision Program (IOI19_vision)C++14
32 / 100
9 ms1912 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; template<class A> using v=vector<A>; template<class A,class B=A> using p=pair<A,B>; typedef v<int> vi; typedef p<int> pi; typedef string str; #define f first #define s second #define mp make_pair #define ins insert #define pb push_back #define sz(S) (int)S.size() #define get4(a,b,c,d,...) d #define lp3(x,a,b) for(int x=(a);x<(b);x++) #define lp2(x,a) lp3(x,0,a) #define lp1(a) lp2(loopvar,a) #define lp(x...) get4(x,lp3,lp2,lp1,0)(x) #define trv(x,S) for(auto& x:(S)) int n,m,tgt; int orig[500][500]; int prj[2][500]; int disthelp[2][500][500]; int dist[2][500]; int isx[2][500]; int dim[2]; void construct_network(int H, int W, int Tgt) { n=H,m=W,tgt=Tgt; lp(i,n) lp(j,m) orig[i][j]=i*m+j; lp(i,n) { vi Ns; lp(j,m) Ns.pb(orig[i][j]); prj[0][i]=add_or(Ns); } lp(j,m) { vi Ns; lp(i,n) Ns.pb(orig[i][j]); prj[1][j]=add_or(Ns); } dim[0]=n,dim[1]=m; lp(d,2) { { vi Ns; lp(i,dim[d]) Ns.pb(prj[d][i]); dist[d][0]=add_xor(Ns); } lp(i,dim[d]) lp(j,i+1,dim[d]) disthelp[d][i][j]=add_and({prj[d][i],prj[d][j]}); lp(i,1,dim[d]) { vi Ns; lp(j,i,dim[d]) Ns.pb(disthelp[d][j-i][j]); dist[d][i]=add_or(Ns); } } vi ansarr; lp(i,max(0,tgt-m+1),min(n,tgt+1)) { ansarr.pb(add_and({dist[0][i],dist[1][tgt-i]})); } add_or(ansarr); }
#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...