제출 #1181347

#제출 시각아이디문제언어결과실행 시간메모리
1181347sleepntsheepCultivation (JOI17_cultivation)C++20
0 / 100
2091 ms328 KiB
#include<stdio.h> #include<algorithm> #include<vector> int r,c,n,ans=1e9; struct pt{int x,y;}p[333]; int main(){ scanf("%d%d%d",&r,&c,&n); for(int i=0;i<n;++i)scanf("%d%d",&p[i].x,&p[i].y); std::sort(p,p+n,[&](pt&a,pt&b){return a.x-b.x?a.x<b.x:a.y<b.y;}); n=std::unique(p,p+n,[](pt&a,pt&b){return a.x==b.x&&a.y==b.y;})-p; for(int up=0;up<=r;++up){ for(int dw=0;dw<=r;++dw){ int lef0=0,rig0=0,gapmax=0,ok=1; auto Chk=[&](int i){ if(!ok||i<1||i>r)return; std::vector<int>e; for(int j=0;j<n;++j)if((p[j].x>=i&&p[j].x-up<=i)||(p[j].x<=i&&p[j].x+dw>=i)) e.push_back(p[j].y); if(e.empty()){ ok=0; return; } std::sort(e.begin(),e.end()); lef0=std::max(lef0,e[0]-1); rig0=std::max(rig0,c-e.back()); for(int i=1;i<(int)e.size();++i) gapmax=std::max(gapmax,e[i]-e[i-1]-1); }; for(int i=0;ok&&i<n;++i){ Chk(p[i].x-up); Chk(p[i].x-up-1); Chk(p[i].x+dw+1); Chk(p[i].x+dw); } if(ok) ans=std::min(ans,up+dw+std::max(lef0+rig0,gapmax)); } } printf("%d",ans); return 0; }

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

cultivation.cpp: In function 'int main()':
cultivation.cpp:8:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    8 |     scanf("%d%d%d",&r,&c,&n);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~
cultivation.cpp:9:30: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |     for(int i=0;i<n;++i)scanf("%d%d",&p[i].x,&p[i].y);
      |                         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#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...