제출 #294831

#제출 시각아이디문제언어결과실행 시간메모리
294831phillipVision Program (IOI19_vision)C++14
44 / 100
12 ms2424 KiB
#include "vision.h" #include <bits/stdc++.h> #define ll long long #define fast cin.tie(0);cout.tie(0); #define order ios::sync_with_stdio(0);ios_base::sync_with_stdio(0); #define pb push_back using namespace std; vector<int> q; int cur,k,h,w; void check(int x,int y) { //if(x==2&&y==2)cout<<": "; vector<int>qq; for(int i=0;i<=k;i++) { int j=k-i; if(!(j+y>=w||i+x>=h))qq.push_back((i+x)*w+j+y); if((y-j>=0&&i+x<h)&&i!=0&&j!=0)qq.push_back((i+x)*w+y-j); } // cout<<x<<" "<<y<<": ";for(int i=0;i<qq.size();i++)cout<<qq[i]<<" ";cout<<"\n"; if(qq.size()==0)return; add_or(qq); cur++; add_and({cur-1,x*w+y}); q.push_back(cur); cur++; } void construct_network(int hh, int ww, int kk) { w=ww;h=hh;k=kk; cur=h*w; if(k==0) { for(int i=0;i<h;i++) { for(int j=i%2;j<w;j+=2) { vector<int>qq; if(i)qq.push_back((i-1)*w+j); if(i<h-1)qq.push_back((i+1)*w+j); if(j)qq.push_back(i*w+j-1); if(j<w-1)qq.push_back(i*w+j+1); add_or(qq); // cout<<i<<" "<<j<<": "; for(int i=0;i<qq.size();i++)cout<<qq[i]<<" ";cout<<"\n"; cur++; add_and({cur-1,i*w+j}); q.push_back(cur); cur++; } } add_and(q); return; } else if(min(h,w)==1) { int mx=max(h,w); for(int i=0;i<mx-k;i++) { add_and({i,i+k}); q.push_back(mx+i); } add_or(q); return; } else if(max(h,w)<=200) { for(int i=0;i<h;i++) { for(int j=0;j<w;j++) { check(i,j); } } add_or(q); } else { for(int i=0;i<=k;i++) { int j=k-i; if(j>=w||i>=h)continue; q.push_back(i*w+j); } add_or(q); } }

컴파일 시 표준 에러 (stderr) 메시지

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:45:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |                 for(int i=0;i<qq.size();i++)cout<<qq[i]<<" ";cout<<"\n";
      |                             ~^~~~~~~~~~
vision.cpp:45:17: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   45 |                 for(int i=0;i<qq.size();i++)cout<<qq[i]<<" ";cout<<"\n";
      |                 ^~~
vision.cpp:45:62: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   45 |                 for(int i=0;i<qq.size();i++)cout<<qq[i]<<" ";cout<<"\n";
      |                                                              ^~~~
#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...