이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
from math import gcd
n, a, b = map(int, input().split())
pr = []
for i in range(n):
x, y = map(int, input().split())
pr.append((x, y))
g = gcd(a, b+1)
num = a * b // g
ev = []
for p in pr:
l = p[0]
r = p[1]
if r - l + 1 >= num:
print(num)
exit(0)
l %= num
r %= num
if r < l:
ev += [(l, 1), (num, -1), (0, 1), (r+1, -1)]
else:
ev += [(l, 1), (r + 1, -1)]
ev.sort()
bal = 0
last = 0
ans = 0
for p in ev:
x = p[0]
tp = p[1]
if bal: ans += x - last
last = x
bal += tp
print(ans)
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |