ABC 127 C - Prison

備忘録

問題

atcoder.jp

回答

import sys
import os


def main():
    if os.getenv("LOCAL"):
        sys.stdin = open("input.txt", "r")

    N, M = list(map(int, sys.stdin.buffer.readline().split()))
    mi = 1
    mx = N

    for m in range(M):
        L, R = map(int, sys.stdin.buffer.readline().split())
        mi = max(mi, L)
        mx = min(mx, R)

    print(max(0, mx - mi + 1))


if __name__ == '__main__':
    main()

考え方

最も右(R)のゲートの値から最も左(L)のゲートの値を引くことで、
LRの間に存在するゲートの数がわかる。
LRの間に存在するゲートの数が全てのゲートを通過できるIDカード。