Problem:
Score: 200 points

Problem Statement

A country decides to build a palace.

In this country, the average temperature of a point at an elevation of x meters is T-x \times 0.006 degrees Celsius.

There are N places proposed for the place. The elevation of Place i is H_i meters.

Among them, Princess Joisino orders you to select the place whose average temperature is the closest to A degrees Celsius, and build the palace there.

Print the index of the place where the palace should be built.

It is guaranteed that the solution is unique.

Constraints

1 \leq N \leq 1000

0 \leq T \leq 50

-60 \leq A \leq T

0 \leq H_i \leq 10^5

All values in input are integers.

The solution is unique.

Input

Input is given from Standard Input in the following format:

N
T A
H_1 H_2 ... H_N

Output

Print the index of the place where the palace should be built.

Sample Input 1

2
12 5
1000 2000

Sample Output 1

1

The average temperature of Place 1 is 12-1000 \times 0.006=6 degrees Celsius.

The average temperature of Place 2 is 12-2000 \times 0.006=0 degrees Celsius.

Thus, the palace should be built at Place 1.

Sample Input 2

3
21 -11
81234 94124 52141

Sample Output 2

3

Solution in C# (Mono 4.6.2.0) (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Program
{
    static void Main(string[] args)
    {
            // 入力
            string[] sS = System.Console.ReadLine().Trim().Split(' ');
            int iN = int.Parse(sS[0]);
            sS = System.Console.ReadLine().Trim().Split(' ');
            int iT = int.Parse(sS[0]) * 1000;
            int iA = int.Parse(sS[1]) * 1000;
            sS = System.Console.ReadLine().Trim().Split(' ');
            List<ClsPos> lstH = new List<ClsPos>();
            for (int i = 0; i < sS.Length; i++)
            {
                ClsPos oneUsr = new ClsPos();
                oneUsr.iX = i + 1;                                  // 地点No
                oneUsr.iH = int.Parse(sS[i]);                       // 標高
                oneUsr.iT = iT - oneUsr.iH * 6;                     // 度
                oneUsr.iD = Math.Abs(iA - oneUsr.iT);               // 度差
                lstH.Add(oneUsr);
            }

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
            sw.Start();

            // 解析
            lstH.Sort(delegate (ClsPos mca1, ClsPos mca2) { return (int)(mca1.iD - mca2.iD); });   // 度差で昇順

            // 出力
            System.Console.WriteLine("{0}", lstH[0].iX.ToString().Trim());

            sw.Stop();
#if DEBUG
            Console.WriteLine();
            Console.WriteLine("{0}", sw.Elapsed.ToString());
            Console.WriteLine("続行するには何かキーを押してください．．．");
            Console.ReadKey();
#endif
    }

        // 情報
        private class ClsPos
        {
            public int iX { get; set; } = 0;                    // 地点No
            public int iH { get; set; } = 0;                    // 標高
            public int iT { get; set; } = 0;                    // 度
            public int iD { get; set; } = 0;                    // 度差
        }

}