AtCoder Beginner Contest 136 過去問 (A~C)

参照

atcoder.jp

A問題

1~2分でクリア

a,b,c= map(int,input().split())
k = c-a+b
if k<0: print(0)
else: print(c-a+b)

B問題

3分でクリア

n = int(input())
a = 0
for i in range(1,n+1):
  if len(str(i))%2==1:a+=1
print(a)

C問題

10分くらいで解けました。
左端から単調非減少となる数列を判定する問題。
最大値を設けて、一つずつ確認していきます。
1≤N≤10**5なので1重ループなら可能です。

n = int(input())
h = list(map(int, input().split()))
 
max_ = 0
for i in range(n):
  if h[i]>=max_: max_=h[i]
  else:
    h[i]+=1
    if h[i]>=max_: max_=h[i]
    else: 
      print('No')
      exit(0)
print('Yes')