Python の input 関数の返り値は str 型であることに注意してください。

  • 各行の入力を二つの整数として受け取るには map(int,input().split())

を使用することができます。

この問題は大きく分けて、「与えられた情報から、各部員の友達の数を求める処理」、「最も友達の多い部員の番号を求める処理」に分けられます。一つずつ処理方法を解説します。

  1. 与えられた情報から、各部員の友達の数を求める処理
    与えられる情報が重複していない場合、各部員番号の登場回数が友達数と一致するため、登場回数をカウントすれば正解できます。しかし、この問題の場合、与えられる情報が重複している可能性があるため、別のアプローチが必要です。そこで、友達の数を直接カウントするのではなく、各部員の友達の集合を管理することを考えます。そうすれば、重複があった場合でも問題なく友達数を求めることができます。
  2. 最も友達の多い部員の番号を求める処理
    これは、友達の数の最大値・その値を持つ部員番号を更新しながら部員番号が小さい順に走査することで求められます。

以下は Python の実装例です。