結果
問題 |
No.1890 Many Sequences Sum Queries
|
ユーザー |
|
提出日時 | 2022-04-05 18:34:02 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 107 ms / 2,000 ms |
コード長 | 558 bytes |
コンパイル時間 | 338 ms |
コンパイル使用メモリ | 82,508 KB |
実行使用メモリ | 76,456 KB |
最終ジャッジ日時 | 2024-11-26 22:29:21 |
合計ジャッジ時間 | 3,171 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 25 |
ソースコード
import sys input = sys.stdin.readline from bisect import * N, Q = map(int, input().split()) A = list(map(int, input().split())) acc = [0] s_acc = [0] for Ai in A: acc.append(acc[-1]+Ai) s_acc.append(s_acc[-1]+Ai*(Ai+1)//2) for _ in range(Q): S = int(input()) if s_acc[-1]<S: print(-1) continue i = bisect_left(s_acc, S) l, r = 1, A[i-1] while l<=r: m = (l+r)//2 if m*(m+1)//2>=S-s_acc[i-1]: r = m-1 else: l = m+1 print(acc[i-1]+l)