結果
| 問題 |
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)