結果
問題 |
No.2433 Min Increasing Sequence
|
ユーザー |
|
提出日時 | 2023-08-31 00:08:38 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 375 ms / 2,000 ms |
コード長 | 604 bytes |
コンパイル時間 | 367 ms |
コンパイル使用メモリ | 82,560 KB |
実行使用メモリ | 183,912 KB |
最終ジャッジ日時 | 2025-01-03 00:32:31 |
合計ジャッジ時間 | 9,406 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 32 |
ソースコード
from collections import defaultdict from bisect import bisect_left import sys input = sys.stdin.readline n = int(input()) A = list(map(int, input().split())) mod = 998244353 setA = set() idx_list = defaultdict(list) for i in range(n): setA.add(A[i]) idx_list[A[i]].append(i) sortA = sorted(A) ans = 1 idx = -1 for a in sortA: L = idx_list[a] i = bisect_left(L, idx) if i == len(L): continue if idx != -1: ans *= L[i] - idx + 1 ans %= mod for j in range(i, len(L) - 1): ans *= L[j + 1] - L[j] + 1 ans %= mod idx = L[-1] print(ans)