AtCoder 競技プログラミングの鉄則 演習問題集
問題文
省略
省略
C++に変換後のコードはこちら
int @N, @L, @K; int A[N+1]; ll C[N+1]; rd((A,C)(N)); A[N] = L;
ll res = 0; int g = K, p = 0, d;
int ss = 0, se = 0, sp[N]; ll sc[N];
rep(i,N+1){
g -= A[i] - p;
p = A[i];
while(g < 0){
if(ss == se) wt(-1), return 0;
d = (K - (p - sp[ss])) - g;
d <?= -g;
if(d <= 0) ss++, continue;
res += d * sc[ss];
g += d;
}
while(ss < se && sc[se-1] >= C[i]) se--;
sp[se] = A[i]; sc[se] = C[i]; se++;
}
wt(res);
Current time: 2024年05月05日23時56分47秒
Last modified: 2022年11月23日15時25分38秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る
Logged in as: unknown user (not login)