結果
問題 | No.2830 Don't Stop the Game |
ユーザー | 👑 rin204 |
提出日時 | 2024-08-02 22:00:33 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 59 ms / 2,000 ms |
コード長 | 1,183 bytes |
コンパイル時間 | 259 ms |
コンパイル使用メモリ | 82,468 KB |
実行使用メモリ | 70,032 KB |
最終ジャッジ日時 | 2024-08-02 22:00:36 |
合計ジャッジ時間 | 3,591 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
ソースコード
ans = [] for j in range(1, 31): ans.append((1,)) ans.append((j,)) A = [i for i in range(1, 31)] def f(i, j): t = A[i] + A[j] A[i] = A[j] = t i += 1 j += 1 ans.append((3,)) ans.append((i, j)) tot = 998244352 f(29, 29) f(29, 28) f(29, 27) f(29, 1) for _ in range(23): f(29, 29) ans.append((5,)) ans.append((30, 998244352)) f(1, 29) f(27, 29) f(28, 29) for i in range(1, 30): f(i, 29) print(len(ans) // 2) for row in ans: print(*row) exit() import random random.seed(0) MOD = 998244353 n = 30 A = [random.randrange(1, 10**7) for _ in range(n)] B = [0] * n for i in range(len(ans) // 2): t = ans[i * 2][0] if t == 1: j = ans[i * 2 + 1][0] - 1 for k in range(n): B[k] += pow(A[j], k + 1, MOD) B[k] %= MOD elif t == 3: i, j = ans[i * 2 + 1] i -= 1 j -= 1 b = B[i] * B[j] % MOD B[i] = B[j] = b elif t == 5: i, x = ans[i * 2 + 1] i -= 1 B[i] += x B[i] %= MOD print(A) print(B) print(sum(A)) print(sum(B)) print(len(ans) // 2)