結果
問題 | No.2875 What is My Rank? |
ユーザー |
![]() |
提出日時 | 2024-09-06 22:15:31 |
言語 | Crystal (1.14.0) |
結果 |
AC
|
実行時間 | 106 ms / 2,000 ms |
コード長 | 700 bytes |
コンパイル時間 | 11,707 ms |
コンパイル使用メモリ | 297,120 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-06 22:16:39 |
合計ジャッジ時間 | 13,539 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
MOD = 998244353i64def inv(v : Int64)pow(v, MOD - 2)enddef pow(v : Int64, p)ret = 1i64while p > 0if (p & 1i64) != 0ret *= vret %= MODendv *= vv %= MODp >>= 1endretendn = read_line.to_il0, r0 = read_line.split.map(&.to_i64)ans = 1i64(n - 1).times dol1, r1 = read_line.split.map(&.to_i64)next if r1 <= l0if r0 < l1ans += 1nextendadd = 0i64if l0 < l1add += (l1 - l0) * (r1 - l1 + 1)endlo = {l0, l1}.maxhi = {r0, r1}.minadd += ((r1 - lo) + (r1 - hi)) * (hi - lo + 1) // 2add %= MODadd *= inv(r0 - l0 + 1)add %= MODadd *= inv(r1 - l1 + 1)add %= MODans += addendputs ans % MOD