# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
259737 | 2020-08-08T12:38:15 Z | uacoder123 | 쌀 창고 (IOI11_ricehub) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "ricehub.h" using namespace std; #define F first #define S second #define FOR(i,a,b) for (auto i = (a); i <= (b); ++i) #define NFOR(i,a,b) for(auto i = (a); i >= (b); --i) #define all(x) (x).begin(), (x).end() #define sz(x) int(x.size()) #define mp(i,a) make_pair(i,a) #define pb(a) push_back(a) #define bit(x,b) (x&(1LL<<b)) typedef long long int lli; typedef pair <lli,lli> ii; typedef pair <lli,ii> iii; typedef vector <lli> vi; int besthub(int R, int L, int X[], long long B) { lli n=R,ls=0,us=0; int l=0,u=-1,m=0; lli ans=0; for(lli i=0;i<n;++i) { u++; us+=X[i]; if((u-m+1)>=(m-l)+2) { ls+=X[m]; us-=X[m]; m++; } while(X[m]*(m-l)-ls+us-X[M]*(u-m+1)>B) { ls-=X[l]; l++; if((u-m+1)>=(m-l)+2) { ls+=X[m]; us-=X[m]; m++; } } ans=max(ans,lli(u.size()+l.size())); } return(ans); }