結果
| 問題 |
No.2875 What is My Rank?
|
| コンテスト | |
| ユーザー |
わん
|
| 提出日時 | 2025-10-21 15:52:34 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 401 ms / 2,000 ms |
| コード長 | 630 bytes |
| コンパイル時間 | 388 ms |
| コンパイル使用メモリ | 82,852 KB |
| 実行使用メモリ | 86,592 KB |
| 最終ジャッジ日時 | 2025-10-21 15:52:45 |
| 合計ジャッジ時間 | 9,135 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 32 |
ソースコード
import sys; input=sys.stdin.readline
MOD = 998244353
N = int(input())
L, R = [None]*N, [None]*N
for i in range(N):
L[i], R[i] = map(int, input().split())
L[i] -= 1
inv2 = pow(2, -1, MOD)
ans = 1
for i in range(1, N):
sm = 0
if L[0] >= R[i]: continue
if R[0] < L[i]:
ans += 1
continue
if L[0]<L[i]: sm += (R[i]-L[i])*(L[i]-L[0])
if R[0]<R[i]: sm += (R[0]-L[0])*(R[i]-R[0])
sm -= max(0, R[i]-R[0])*max(0, L[i]-L[0])
l, r = max(L[0], L[i]), min(R[0], R[i])
sm = (sm+(r-l)*(r-l-1)*inv2)%MOD
sm = (sm*pow(R[i]-L[i], -1, MOD))%MOD
sm = (sm*pow(R[0]-L[0], -1, MOD))%MOD
ans += sm
ans %= MOD
print(ans)
わん