Submission #332644

#TimeUsernameProblemLanguageResultExecution timeMemory
332644nicholaskVision Program (IOI19_vision)C++14
33 / 100
10 ms2280 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; /* int h,w,k; vector <int> t; int current; int calls=0; void add_or(vector <int> v){ cout<<"Call No. "<<calls<<": requested "; for (auto&i:v) cout<<i<<' '; cout<<endl; calls++; int n=v.size(); if (n>10001){ cout<<"Too many instructions on call and_or\n"; exit(0); } for (int i=0; i<n; i++){ if (v[i]<0||v[i]>=current){ cout<<"Invalid index provided on call and_or: "<<i<<"th element requested for "<<v[i]; exit(0); } } int res=0; for (int i=0; i<n; i++){ if (t[v[i]]==1){ res=1; break; } } t.push_back(res); current++; } */ void construct_network(int H,int W,int K){ int cnt=0; map <pair <int,int>,bool> p; for (int i=0; i<H; i++){ for (int j=0; j<W; j++){ for (int xp=i,yp=j-K; xp!=i-K&&yp!=j; xp--,yp++){ if (xp>=0&&xp<H&&yp>=0&&yp<W&&!p[{i*W+j,xp*W+yp}]&&!p[{xp*W+yp,i*W+j}]){ add_and({i*W+j,xp*W+yp}); cnt++; p[{i*W+j,xp*W+yp}]=1; } } for (int xp=i-K,yp=j; xp!=i&&yp!=j+K; xp++,yp++){ if (xp>=0&&xp<H&&yp>=0&&yp<W&&!p[{i*W+j,xp*W+yp}]&&!p[{xp*W+yp,i*W+j}]){ add_and({i*W+j,xp*W+yp}); cnt++; p[{i*W+j,xp*W+yp}]=1; } } for (int xp=i,yp=j+K; xp!=i+K&&yp!=j; xp++,yp--){ if (xp>=0&&xp<H&&yp>=0&&yp<W&&!p[{i*W+j,xp*W+yp}]&&!p[{xp*W+yp,i*W+j}]){ add_and({i*W+j,xp*W+yp}); cnt++; p[{i*W+j,xp*W+yp}]=1; } } for (int xp=i+K,yp=j; xp!=i&&yp!=j-K; xp--,yp--){ if (xp>=0&&xp<H&&yp>=0&&yp<W&&!p[{i*W+j,xp*W+yp}]&&!p[{xp*W+yp,i*W+j}]){ add_and({i*W+j,xp*W+yp}); cnt++; p[{i*W+j,xp*W+yp}]=1; } } } } if (cnt==1) return; //cnt results stored in [h*w,h*w+cnt) vector <int> v; for (int i=0; i<cnt; i++){ v.push_back(H*W+i); if (i==cnt-1){ add_or(v); } } } /* int main(){ cin>>h>>w>>k; for (int i=0; i<h*w; i++){ int v; cin>>v; t.push_back(v); } current=h*w; construct_network(h,w,k); for (auto&i:t) cout<<i<<' '; cout<<endl; } */
#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...