Port 53

明日のための技術メモ

AtCoder ABC163

AtCoder ABC163解いた分だけまとめ。
今回はABC3完。ただしUnratedでした。運営の皆様お疲れ様です...
最初に500エラー出た時びっくりした...そしてA問題でテストケース全部ACなのに判定IEって笑
COVID-19で外に出られない中毎週開催してくれてるだけでありがたいですよほんと。
Dは明らかにTLEする解だけしかできなかったので、解説放送見て実装します。

目次

A. Circle Pond

問題文 f:id:saturn-glave:20200419231631p:plain

やるだけ。円周率といえばmath.piを使う。

ACしたコード

# coding:utf-8
import math
r = int(input())
print(2 * r * math.pi)

B. Homework

問題文 f:id:saturn-glave:20200419231922p:plain

宿題は同時並列でやれないことになっているので、
宿題にかかる日数の合計と夏休み期間を比較して結果を分岐させるだけ。

ACしたコード

# coding:utf-8
n, m = map(int, input().split())
a = list(map(int, input().split()))
homework = sum(a)

if n - homework >= 0:
    print(n - homework)
else:
    print(-1)

C. management

問題文 f:id:saturn-glave:20200419232201p:plain

わざわざ社員番号1の人のデータを足す必要なかった疑惑。
上司の社員番号をカウントして回答用のリストに突っ込んでいくだけ。

ポイント

リストの最初に値を追加したい時はスライスで追加する

a = [1, 2, 3]
# 先頭に0を追加する
a[0:0] = [0]
print(a)
# [0, 1, 2, 3]

ACしたコード

# coding:utf-8
n = int(input())
a = list(map(int, input().split()))
a[0:0] = [0]
# print(a)
ans = [0] * n

for i in range(1, n):
    # print(i)
    num = a[i]
    ans[num - 1] += 1
    # print(num, num - 1)

for item in ans:
    print(item)

参考

note.nkmk.me