ABC163 C - management から学んだ


続いてサンプル。



社員番号の数だけ配列を用意してみるか。
Ai で call された社員番号のセルを 1 ずつインクリメントすれば良いのでは?

management.py
N = int(input())
A = list(map(int,input().split()))
lis = [0]*(N+1)

for i in range(2,N+1):#計算量 ほぼ O(N)
    lis[A[i-2]] += 1

for i in range(1,len(lis)):#計算量 O(N)
    print(lis[i])

#計算量の合計 O(2N)。 間に合う
#131ms

再チャレンジ。
出来たけどおもろい記述があったのでパクってみました。

abc163c.py
def solv():
    N = int(input())
    A = list(map(int,input().split()))
    memo = [0]*N
    for a in A:
        memo[a-1] += 1
    print("\n".join(map(str,memo)))#<=パクった
    #for ans in memo: #<=パクる前の記述
    #    print(ans)
solv()#111ms

各要素を文字に変換して
かつ、間に改行の記述を挟むことで
for を省略している。素晴らしい。