LoginSignup
1
1

More than 5 years have passed since last update.

AtCoder Beginner Contest 113 C問題をpython3で

Posted at

前回Cの問題が解けなかったので,毎日C問題の過去問を解いていく.
今日はABC113-C
普通に分からなくて泣きながら他の人の回答をガン見して,コメントを打ちながら咀嚼.

Main.py
N, M = map(int, input().split())
D = [[] for i in range(N)]

for i in range(M):
  p, y = map(int, input().split())
  D[p-1].append((y, i)) #市ごとにリストに入れる.この時,元の順番をタプルの1番目の要素として入れておく

ans = [None]*M

for i, d in enumerate(D): #enumerateは要素の中身とインデックス番号を持ってこれる.print(i, d)で確認
  d.sort()
  for k, (y, j) in enumerate(d): #こちらも同様.(y, j)となっているため,yには年数が,jには元の順番の情報が入る
    ans[j] = str(i+1).zfill(6) + str(k+1).zfill(6) #ans[j]に12桁の認識番号を挿入

print(*ans, sep = '\n') 
#普通にprint(ans)とするとリストが出力される
#print(*ans)とすると,リストの要素がスペース区切りで出力される
#printのオプションsepで,文字の区切りをスペース出なく,改行に指定

最後のprintで,*ansと書くとリストが外れる理由がよく分からない.

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1