제출 #340238

#제출 시각아이디문제언어결과실행 시간메모리
340238Kerim쌀 창고 (IOI11_ricehub)C++17
컴파일 에러
0 ms0 KiB
#include "bits/stdc++.h" #define MAXN 100009 #define INF 1000000007 #define mp(x,y) make_pair(x,y) #define all(v) v.begin(),v.end() #define pb(x) push_back(x) #define wr cout<<"----------------"<<endl; #define ppb() pop_back() #define tr(ii,c) for(typeof((c).begin()) ii=(c).begin();ii!=(c).end();ii++) #define ff first #define ss second using namespace std; typedef long long ll; typedef pair<int,int> PII; template<class T>bool umin(T& a,T b){if(a>b){a=b;return 1;}return 0;} template<class T>bool umax(T& a,T b){if(a<b){a=b;return 1;}return 0;} const int error=0xFFFFFFF; int n,l,mx=1; ll b; ll arr[MAXN],par[MAXN]; ll sum(int left,int right){ return par[right]-par[left-1]; } int ok(int type,int ind,int x){ int st=0,en=x; while(st+1<en){ int mid=(st+en)>>1; int dim=x-mid; ll budget=0; ll pul=0; if(ind-dim<1){ st=mid; continue; } if(ind+mid-1>n){ en=mid; continue; } if(dim) budget=(dim*arr[ind]-sum(ind-dim,ind-1)); if(mid) pul=(sum(ind,ind+mid-1)-mid*arr[ind]); if(pul+budget<=b) return 1; if(type==1) en=mid; else st=mid; } for(int mid=st;mid<=en;mid++){ int dim=x-mid; ll budget=0; ll pul=0; if(ind-dim<1 or ind+mid-1>n) continue; if(dim) budget=(dim*arr[ind]-sum(ind-dim,ind-1)); if(mid and ind+mid-1<=n) pul=(sum(ind,ind+mid-1)-mid*arr[ind]); if(pul+budget<=b) return 1; } return 0; } int go(int x){ int st=1,en=n; while(st+1<en){ int mid=(st+en)>>1; if(ok(1,x,mid) or ok(2,x,mid)) st=mid; else en=mid; } for(int i=en;i>=st;i--) if(ok(1,x,i) or ok(2,x,i)) return i; return error; } int main(){ scanf("%d%d%lld",&n,&l,&b); for(int i=1;i<=n;i++){ scanf("%lld",arr+i); par[i]=par[i-1]+arr[i]; } for(int i=1;i<=n;i++) umax(mx,go(i)); printf("%d\n",mx); return 0; }

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

ricehub.cpp: In function 'int main()':
ricehub.cpp:82:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   82 |  scanf("%d%d%lld",&n,&l,&b);
      |  ~~~~~^~~~~~~~~~~~~~~~~~~~~
ricehub.cpp:84:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   84 |   scanf("%lld",arr+i);
      |   ~~~~~^~~~~~~~~~~~~~
/tmp/cc56ohkr.o: In function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/cckEPEkW.o:ricehub.cpp:(.text.startup+0x0): first defined here
/tmp/cc56ohkr.o: In function `main':
grader.cpp:(.text.startup+0xae): undefined reference to `besthub(int, int, int*, long long)'
collect2: error: ld returned 1 exit status