AtCoder Beginner Contest 109・111・113・114 A・B問題

前書き

AtCoder Beginner Contest 109・111・113・114 A・B問題を解きました。

A問題(ABC109)

  • 難易度:灰
  • 時間:2分30秒

atcoder.jp

import sys
A,B=map(int,input().split())
for i in range(1,4):
  if (A*B*i)%2!=0: 
    print('Yes')
    sys.exit()
print('No')

B問題(ABC109)

  • 難易度:灰
  • 時間:7分

atcoder.jp

最初に一つ前の文字列の末尾と次の文字列の頭が一致するかを確認し、その後に文字列の重複がないかをチェックしています。

import collections,sys
N=int(input())
lis=[]
for i in range(N):
  s=input()
  if i>0 and lis[-1][-1]!=s[0]:
    print('No')
    sys.exit()
  lis.append(s)

c = collections.Counter(lis)
if c.most_common()[0][1]>1: print('No')
else: print('Yes')

A問題(ABC111)

  • 難易度:灰
  • 時間:4分

atcoder.jp

もっと良い方法があるのではと考えましたが、時間を気にして妥協しました。

n=input()
a=''
for i in range(len(n)):
  if n[i]=='9': a+='1'
  elif n[i]=='1': a+='9'
print(a)

B問題(ABC111)

  • 難易度:灰
  • 時間:3分

atcoder.jp

N=int(input())
if N%111==0: print(N)
else: print((N//111+1)*111)

A問題(ABC113)

  • 難易度:灰
  • 時間:2分

atcoder.jp

X,Y=map(int,input().split())
print(int(X+Y/2))

B問題(ABC113)

  • 難易度:灰
  • 時間:6分

atcoder.jp

入力値を一つずつ確認しながら、理想値との誤差が最小値となる拠点番号を探します。

N=int(input())
T,A=map(int,input().split())
_min,ans=100000000000,100
H=list(map(int,input().split()))
for i in range(N):
  if abs((T-H[i]*0.006)-A)<_min:
    _min=abs((T-H[i]*0.006)-A)
    ans=i+1
print(ans)

A問題(ABC114)

  • 難易度:灰
  • 時間:30秒

atcoder.jp

X=int(input())
if X==3 or X==5 or X==7: print('YES')
else: print('NO')

B問題(ABC114)

  • 難易度:灰
  • 時間:7分

atcoder.jp

与えられた文字列から1つずつずらしながら、753との差が最小となる場合を探します。

S=input()
_min=1000000000
for i in range(int(len(S)-2)):
  _min = min(abs(int(S[i:i+3])-753),_min)
print(_min)