Submission #1164968

#TimeUsernameProblemLanguageResultExecution timeMemory
1164968AlgorithmWarriorVision Program (IOI19_vision)C++20
14 / 100
17 ms2632 KiB
#include <bits/stdc++.h> #include "vision.h" using namespace std; int ind(int lin,int col,int W){ return lin*W+col; } bool inmat(int lin,int col,int H,int W){ return 0<=lin && lin<H && 0<=col && col<W; } int dist(int l1,int c1,int l2,int c2){ return abs(l1-l2)+abs(c1-c2); } vector<int>coord(int l1,int l2,int c1,int c2,int W){ vector<int>coor; int i,j; for(i=l1;i<=l2;++i) for(j=c1;j<=c2;++j) coor.push_back(ind(i,j,W)); return coor; } void construct_network(int H, int W, int K) { int i,j; /// exista vector<int>exist; /// exista orizontal vector<int>exoriz; /// o singura linie vector<int>asklinii; for(i=0;i<H;++i) asklinii.push_back(add_or(coord(i,i,0,W-1,W))); exoriz.push_back(add_xor(asklinii)); /// coloane alaturate vector<int>colal; /// col par-impar vector<int>askcpimp; for(j=0;j<W-1;j+=2) askcpimp.push_back(add_or(coord(0,H-1,j,j+1,W))); if(j==W-1) askcpimp.push_back(add_or(coord(0,H-1,j,j,W))); colal.push_back(add_xor(askcpimp)); /// col impar-par vector<int>askcimpp; askcimpp.push_back(add_or(coord(0,H-1,0,0,W))); for(j=1;j<W-1;j+=2) askcimpp.push_back(add_or(coord(0,H-1,j,j+1,W))); if(j==W-1) askcimpp.push_back(add_or(coord(0,H-1,j,j,W))); colal.push_back(add_xor(askcimpp)); exoriz.push_back(add_or(colal)); exist.push_back(add_and(exoriz)); /// exista vertical vector<int>exvert; /// o singura coloana vector<int>askcoloane; for(j=0;j<W;++j) askcoloane.push_back(add_or(coord(0,H-1,j,j,W))); exvert.push_back(add_xor(askcoloane)); /// linii alaturate vector<int>linal; /// lin par-impar vector<int>asklpimp; for(i=0;i<H-1;i+=2) asklpimp.push_back(add_or(coord(i,i+1,0,W-1,W))); if(i==H-1) asklpimp.push_back(add_or(coord(i,i,0,W-1,W))); linal.push_back(add_xor(asklpimp)); /// lin impar-par vector<int>asklimpp; asklimpp.push_back(add_or(coord(0,0,0,W-1,W))); for(i=1;i<H-1;i+=2) asklimpp.push_back(add_or(coord(i,i+1,0,W-1,W))); if(i==H-1) asklimpp.push_back(add_or(coord(i,i,0,W-1,W))); linal.push_back(add_xor(asklimpp)); exvert.push_back(add_or(linal)); exist.push_back(add_and(exvert)); add_or(exist); }
#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...