結果
| 問題 |
No.2170 Left Addition Machine
|
| コンテスト | |
| ユーザー |
👑 SPD_9X2
|
| 提出日時 | 2021-10-06 15:59:45 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,069 bytes |
| コンパイル時間 | 391 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 320,088 KB |
| 最終ジャッジ日時 | 2024-11-18 05:55:50 |
| 合計ジャッジ時間 | 201,313 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 4 TLE * 65 |
ソースコード
"""
Left Addition Machine 想定TLE解法v1.1
愚直に解く。
O(N^2Q)
maxを求めているのにmodを計算してしまっていたのを修正
"""
import sys
from sys import stdin
def solve(arr): #愚直に解く
while len(arr) > 1:
maxind = 0
for i in range(len(arr)):
if arr[maxind] < arr[i]:
maxind = i
for j in range(maxind):
arr[j] += arr[maxind]
del arr[maxind]
return arr[0] % mod
mod = 998244353
#入力を受け取る
N,Q = map(int,stdin.readline().split())
A = list(map(int,stdin.readline().split()))
LR = []
for i in range(Q):
L,R = map(int,stdin.readline().split())
LR.append( (L,R) )
#制約チェック
assert 1 <= N <= 2*(10**5)
assert 1 <= Q <= 2*(10**5)
assert len(A) == N
assert len(LR) == Q
for i in range(N):
assert 0 <= A[i] < mod
for i in range(Q):
L,R = LR[i]
assert 1 <= L <= R <= N
ANS = []
for loop in range(Q):
l,r = LR[loop]
l -= 1
r -= 1
ANS.append(solve(A[l:r+1]))
print ("\n".join(map(str,ANS)))
SPD_9X2