結果
| 問題 | No.3614 Breaking door keys(LITTLE BREAK ver.) |
| コンテスト | |
| ユーザー |
kidodesu
|
| 提出日時 | 2026-08-06 16:15:39 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 678 bytes |
| 記録 | |
| コンパイル時間 | 849 ms |
| コンパイル使用メモリ | 96,116 KB |
| 実行使用メモリ | 98,560 KB |
| 最終ジャッジ日時 | 2026-08-06 16:15:59 |
| 合計ジャッジ時間 | 5,673 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| サンプル | 0 % | AC * 3 |
| 小課題1 | 10 % | AC * 7 |
| 小課題2 | 20 % | TLE * 1 -- * 6 |
| 小課題3 | 30 % | -- * 7 |
| 小課題4 | 30 % | -- * 14 |
| 小課題5 | 10 % | AC * 10 TLE * 1 -- * 27 |
| 合計 | 2.5 * 10% = 25 点 |
ソースコード
def main():
n, q = list(map(int, input().split()))
A = list(map(int, input().split()))
n_ = max(1, int(n**0.5))
X = [[] for i in range(n//n_+1)]
inf = 1<<60
for i in range(n//n_+1):
B = A[i*n_: min(n, (i+1)*n_)]
B.sort()
B = B[:10]
X[i] = B[:]
for _ in range(q):
l, r, k = list(map(int, input().split()))
l -= 1
Y = []
while l < r:
if not l % n_ and l+n_ <= r:
for x in X[l//n_]:
Y.append(x)
l += n_
else:
Y.append(A[l])
l += 1
Y.sort()
print(sum(Y[:k]))
main()
kidodesu