省略
省略
C++に変換後のコードはこちら
int N, A[2d5], B[2d5];
{
int i, j, s, mx;
ll res = 0;
LHeap<int> hp;
rd(N,A(N),B(N));
hp.walloc(N);
hp.init(N);
rep(i,N) hp.change(i, -B[i]);
while(hp.size){
i = hp.pop();
if(A[i]==B[i]) continue;
if(A[i] > B[i]){ wt(-1); return 0; }
s = B[(i+1)%N] + B[(i-1)%%N];
mx = (B[i] - A[i]) / s;
if(mx==0){ wt(-1); return 0; }
res += mx;
B[i] -= s * mx;
hp.change(i, -B[i]);
}
wt(res);
}
Current time: 2024年04月27日05時40分34秒
Last modified: 2019年09月04日00時12分44秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Grand_Contest AGC AGC_C
トップページに戻る
Logged in as: unknown user (not login)