d_tail's blog

備忘や記録

【参加記録】AtCoder Beginner Contest 113

はじめに

AtCoder Beginner Contest 113に参加した記録です.

beta.atcoder.jp

A - Discount Fare

X + Y/2を出力すれば良い.
A問題でしたが,制約をちゃんと見ていなかったのは気をつけたいです.

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

B - Palace

T−H[i]*0.006を計算してAとの差の絶対値が最小になるiを求めれば良い.
計算結果をintでキャストしたものを提出してしまったため1WA.
焦りすぎたせいで提出までに少し時間がかかってしまったのも反省点.

N = int(input())
T,A = map(int,input().split())
H = [int(i) for i in input().split()]
 
res = - 1
res_val = 100000
for i in range(N):
    av_temp = T - H[i] * 0.006
    if res_val > abs(av_temp - A):
        res = i
        res_val = abs(av_temp - A)
 
print(res+1)

C - ID

入力のPとYの組み合わせに市の番号を追加したものをソートしたり,県ごとに何回市が存在したかをカウントしていくリストを作成したりして解きました.
解法はそこそこで思いつけましたが,Pythonはリスト関係の処理が遅いらしいため,どのように書くか迷って時間を潰してしまいました.(そもそもappendを多用してるのが悪そう)

N,M = map(int,input().split())
PY = []
tmp = []
cheker = []
res = []
for i in range(M):
    tmp = list(map(int,input().split()))
    tmp.append(i)
    PY.append(list(tmp))
    res.append('')
 
sorted_py = sorted(PY, key=lambda x: x[1])
checker = [0 for i in range(N)]
 
for i in range(M):
    index = sorted_py[i][0]-1
    checker[index] += 1
    res[sorted_py[i][2]] = str(sorted_py[i][0]).zfill(6) + str(checker[sorted_py[i][0]-1]).zfill(6)
 
for i in range(M):
    print(res[i])

D - Number of Amidakuji

手付かず.

コメント

C問題がなんとか解けて良かったです.
次回もC問題が解ければレートが緑になる可能性があるので頑張りたいところです.