【競技プログラミング】 AtCoder Beginner Contest 127 - C問題

foobarwithgoogleでは全問クリアすることが出来ず、呆気なく終わってしまいました。 悔しい気持ちが残りますが、本来の目標である水色コーダーを目指し、AtCoder Problemsで鍛錬しています。 2月は最低3問はACすることを日課にしており、現在は2, 3, 8, 9日の4日間でsubmissionできませんでした。

本日14日なので、およそ30%の割合です。業務に脳内のキャパを占有されていたのが最大の要因ですが、それは学生生活、社会人生活を送る皆さん全員に起こる話なので、言い訳に過ぎません。

残り半月は毎日ACできるように少し自分に負荷をかけ、学んだことのアウトプットも同時に行うと緊張感を維持できるのでは、と考えた次第です。

さて、それでは本題のABC127 C問題の解説に移ります!

詰まったところ

問題の意図が理解出来なかった。 解説放送を見て、Li ~ Riが各ゲートを通過可能な番号(つまりIDカード)だと理解した。

解法

max(Li) ~ min(Ri)に存在する整数(つまりIDカード)が、全てのゲートを通過できる。

n, m = map(int, input().split())
l, r = 0, n
for i in range(m):
    a, b = map(int, input().split())
    l = max(l, a)
    r = min(r, b)
print(max(0,r-l+1))

参考サイト