結果
| 問題 |
No.2667 Constrained Permutation
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-12-30 01:29:30 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,178 bytes |
| コンパイル時間 | 456 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 149,320 KB |
| 最終ジャッジ日時 | 2024-09-28 02:19:30 |
| 合計ジャッジ時間 | 40,536 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 14 WA * 32 |
ソースコード
import sys, time, random
from collections import deque, Counter, defaultdict
input = lambda: sys.stdin.readline().rstrip()
ii = lambda: int(input())
mi = lambda: map(int, input().split())
li = lambda: list(mi())
inf = 2 ** 61 - 1
mod = 998244353
import heapq
n = ii()
LR = []
lr = []
for i in range(n):
l, r = mi()
lr.append((l, r))
LR.append((l, -1))
LR.append((r, 1))
LR.sort()
LR2 = [[0, 0] for _ in range(n)]
lcnt = 0
rcnt = 0
for v, x in LR:
if x == -1:
LR2[lcnt][0] = v
lcnt += 1
else:
LR2[rcnt][1] = v
rcnt += 1
mink = -inf
maxk = inf
LR2 = LR2[::]
for i in range(n):
l, r = LR2[i]
mink = max(mink, l - i)
maxk = min(maxk, r - i)
ans = max(0, maxk - mink + 1)
now = mink
cnt = 0
q = []
nex = []
for l, r in lr:
if l < now <= r:
heapq.heappush(q, r)
elif r >= now:
nex.append((l, r))
else:
ans = 0
break
nex.sort()
for l, r in nex:
if l > now:
ans = 0
break
heapq.heappush(q, r)
to = heapq.heappop(q)
if to < now:
ans = 0
break
now += 1
print(ans)