Problem:
ワカサギ釣り大会

桧原湖でワカサギ釣り大会が行われました。一番多くのワカサギを獲得した人が優勝者です。

参加者番号と釣った匹数のリストを読み込み、優勝者の番号と釣った匹数を出力するプログラムを作成してください。優勝者が複数いる場合は、その中で参加者番号が最も小さい一人を出力してください。

入力

入力は以下の形式で与えられる。

n
a1 v1
a2 v2
:
an vn

n (1 ≤ n ≤ 20) は参加者の数、ai は参加者番号を表す。参加者番号は 1 以上 n 以下の異なる整数である。vi ( 0 ≤ vi ≤ 100) は参加者 ai が獲得した匹数である。

出力

優勝者の参加者番号と釣った匹数を空白区切りで１行に出力せよ。

入力例

6
1 14
2 25
3 42
4 11
5 40
6 37

出力例

3 42

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;

class Program {

    static int Main(string[] args) {
        List<int[]> list = new List<int[]>();

        int n = InputN();

        for (int i = 0; i < n; i++) {
            list.Add(InputInt());
        }

        Check(list);

        return 0;
    }

    static int InputN() {
        string v = Console.ReadLine();
        return int.Parse(v);
    }

    static int[] InputInt() {
        string v = Console.ReadLine();
        string[] vs = v.Split(' ');

        return new int[] { int.Parse(vs[0]), int.Parse(vs[1]) };
    }

    static void Check(List<int[]> list) {
        int minID = 100;
        int maxValue = -1;

        for (int i = 0; i < list.Count; i++) {
            if (maxValue == list[i][1]) {
                if (list[i][0] < minID) {
                    maxValue = list[i][1];
                    minID = list[i][0];
                }
            }
            else if (maxValue < list[i][1]) {
                maxValue = list[i][1];
                minID = list[i][0];
            }
        }

        Console.WriteLine(string.Format("{0} {1}", minID, maxValue));
    }
}