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;
using System.Linq;

namespace AOJ0095
{
    class Program
    {
        static void Main()
        {
            var winner = (from competitor in ReadInput()
                          orderby competitor.Point descending, competitor.Id
                          select competitor)
                .First();

            Console.WriteLine("{0} {1}", winner.Id, winner.Point);
        }

        private static IEnumerable<Competitor> ReadInput()
        {
            var count = int.Parse(Console.ReadLine() ?? "");

            for (var i = 0; i < count; i++)
            {
                var values = (Console.ReadLine() ?? "").Split(" ".ToArray(), StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
                yield return new Competitor(values[0], values[1]);
            }
        }
    }

    class Competitor
    {
        public int Id { get; private set; }
        public int Point { get; private set; }

        public Competitor(int id, int point)
        {
            Id = id;
            Point = point;
        }
    }
}