AtCoder Beginner Contest 127 A〜C問題

前書き

AtCoder Beginner Contest 127 A〜C問題を解きました。
面接のライブコーディングで歯がたたず、自分のコーディング力の無さに危機感を覚え、AtCoderにほぼ毎日取り組み始めてから1ヶ月。
これからも継続していきます。直近の目標は就活が完了するまでに茶色を目指す。

A問題

難易度:灰
時間:2分

atcoder.jp

A,B=map(int,input().split())
if A>=13: print(B)
elif A>=6: print(int(B/2))
else: print(0)

B問題

難易度:灰
時間:2分

atcoder.jp

r,D,x=map(int,input().split())
for i in range(10):
  x=r*x-D
  print(x)

C問題

難易度:灰(中)
時間:10分

atcoder.jp

カード数N:1≤N≤100000、ゲート数M:1≤M≤100000であり、
M個全てのゲートを通過するカードNの数を推測する問題。
二重ループさせるとO(N^2)=10^10超えなので、確実にTLEです。

ゲートで必要なのは通過できるカード番号の端の数字(最小と最大)です。
端の数字(最小と最大)さえ通過できれば間のカードは全て通過します。
これで計算量を省力化できます。

max-minが負の値となるときは全てのゲートを通過するカードがないので0。

N,M=map(int,input().split())
_min, _max=1,100000
for i in range(M):
  L,R=map(int,input().split())
  _min=max(L,_min)
  _max=min(R,_max)
print(max(_max-_min+1,0))