Submission #587953

#TimeUsernameProblemLanguageResultExecution timeMemory
587953ogibogi2004Vision Program (IOI19_vision)C++14
47 / 100
22 ms4420 KiB
#include "vision.h" #include<bits/stdc++.h> using namespace std; void construct_network(int H, int W, int K) { if(K==1) { int c1[W],r1[H],c2[W],r2[H]; for(int i=0;i<H;i++) { vector<int>v; for(int j=0;j<W;j++)v.push_back(i*W+j); r1[i]=add_or(v); } for(int i=0;i<H-1;i++) { vector<int>v1; vector<int>v2; for(int j=0;j<W;j++)v1.push_back(i*W+j); for(int j=0;j<W;j++)v2.push_back((i+1)*W+j); r2[i]=add_and({add_or(v1),add_or(v2)}); } for(int j=0;j<W;j++) { vector<int>v; for(int i=0;i<H;i++)v.push_back(W*i+j); c1[j]=add_or(v); } for(int j=0;j<W-1;j++) { vector<int>v1,v2; for(int i=0;i<H;i++)v1.push_back(W*i+j); for(int i=0;i<H;i++)v2.push_back(W*i+j+1); c2[j]=add_and({add_or(v1),add_or(v2)}); } int cc1,cc2,rr1,rr2; vector<int>v; v.clear(); for(int i=0;i<W;i++)v.push_back(c1[i]); cc1=add_xor(v); v.clear(); for(int i=0;i<H;i++)v.push_back(r1[i]); rr1=add_xor(v); v.clear(); for(int i=0;i<W-1;i++)v.push_back(c2[i]); if(W>1)cc2=add_xor(v); else cc2=0; v.clear(); for(int i=0;i<H-1;i++)v.push_back(r2[i]); if(H>1)rr2=add_xor(v); else rr2=0; int case1=add_and({cc1,rr2}); int case2=add_and({cc2,rr1}); add_or({case1,case2}); return; } vector<pair<pair<int,int>,pair<int,int> > >pairs; for(int i=0;i<H;i++) { for(int j=0;j<W;j++) { for(int i1=0;i1<H;i1++) { for(int j1=0;j1<W;j1++) { if(abs(i1-i)+abs(j1-j)==K) { pairs.push_back({{i,j},{i1,j1}}); } } } } } vector<int>ps; for(int i=0;i<pairs.size();i++) { ps.push_back(add_and({pairs[i].first.first*W+pairs[i].first.second,pairs[i].second.first*W+pairs[i].second.second})); } add_or(ps); /* vector<int>v; for(int i=0;i<H;i++) { for(int j=0;j<W;j++) { if(i+j==K)v.push_back(i*W+j); } } add_or(v); */ }

Compilation message (stderr)

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:83:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<std::pair<int, int>, std::pair<int, int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   83 |     for(int i=0;i<pairs.size();i++)
      |                 ~^~~~~~~~~~~~~
#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...