제출 #100700

#제출 시각아이디문제언어결과실행 시간메모리
100700Bodo171커다란 상품 (IOI17_prize)C++14
0 / 100
14 ms5880 KiB
#include "prize.h" #include <fstream> #include <vector> #include <iostream> using namespace std; const int nmax=200005; const int prdf=600;//modifici dupa asta int lg[nmax]; int spec[nmax]; int mx,nr,i; vector<int> v[nmax]; int cate_st(int poz) { if(v[poz].empty()) v[poz]=ask(poz); return v[poz][0]; } int cate(int poz) { if(v[poz].empty()) v[poz]=ask(poz); return v[poz][0]+v[poz][1]; } void solve(int st,int dr) { int len=spec[dr]-spec[st]; int poz=spec[st]; for(int p=lg[len];p>=0;p--) if(poz+(1<<p)<spec[dr]) { if(cate_st(poz+(1<<p))==st) { poz+=(1<<p); } } poz++;spec[st+1]=poz; } int find_best(int n) { for(i=2;i<=n;i++) lg[i]=lg[i/2]+1; for(i=0;i<min(prdf,n);i++) { v[i]=ask(i); if(v[i][0]+v[i][1]>mx) mx=v[i][0]+v[i][1]; } spec[0]=-1; for(i=0;i<min(prdf,n);i++) { if(v[i][0]+v[i][1]!=mx) spec[++nr]=i; } spec[mx+1]=n+1; for(int i=nr;i<mx;i++) solve(i,mx+1); for(i=1;i<=mx;i++) if(cate(spec[i])==0) return spec[i]; return 0; }

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

prize.cpp: In function 'int find_best(int)':
prize.cpp:54:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
     for(i=1;i<=mx;i++)
     ^~~
prize.cpp:57:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  return 0;
  ^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...