結果
| 問題 |
No.1294 マウンテン数列
|
| コンテスト | |
| ユーザー |
Kiri8128
|
| 提出日時 | 2020-11-21 01:06:54 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 406 ms / 2,000 ms |
| コード長 | 656 bytes |
| コンパイル時間 | 213 ms |
| コンパイル使用メモリ | 82,284 KB |
| 実行使用メモリ | 81,792 KB |
| 最終ジャッジ日時 | 2024-07-23 14:14:03 |
| 合計ジャッジ時間 | 4,163 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 |
ソースコード
N = int(input())
A = sorted([int(a) for a in input().split()])
def calc(A):
n = len(A)
A = A[::-1]
M = max(a - b for a, b in zip(A, A[1:]))
ans = 0
prev = 0
for k in range(M, A[0] - A[-1] + 1):
X = [0, 1]
S = [0, 1]
j = 0
for i, a in enumerate(A):
if i < 2: continue
while A[j] > a + k:
j += 1
X.append(S[-1] - S[j])
if X[-1] < 0: X[-1] += P
S.append(S[-1] + X[-1])
if S[-1] >= P: S[-1] -= P
ans = (ans + (S[-1] - prev) * k) % P
prev = S[-1]
return ans * 2 % P
P = 998244353
print(calc(A))
Kiri8128