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 Rust (1.15.1) (judge verdict: Accepted)

// line io: https://gist.github.com/hebiyan/cb56a7c7eb7c210ce562
use std::cmp::Ordering;

fn compute_temprature(A:f64, T:f64, H: Vec<&str>) -> Vec<f64> {
    // let mut idx_rasidual: Vec<(usize,u32)> = vec![];
    let mut rasidual: Vec<f64> = vec![];
    for (i, item) in H.iter().enumerate() {
        let h: f32 = item.parse().unwrap_or(0.0);
        // idx_rasidual.push((i, T - (h*0.006) as f64));
        rasidual.push((A - T + (h*0.006) as f64).abs())
    }
    // idx_rasidual
    rasidual
}

fn main() {
    let scan = std::io::stdin();
    let mut line = String::new();
    let _ = scan.read_line(&mut line);
    let vec: Vec<&str> = line.split_whitespace().collect();
    let N:f64 = vec[0].parse().unwrap_or(0.0);

    let scan = std::io::stdin();
    let mut line = String::new();
    let _ = scan.read_line(&mut line);
    let vec: Vec<&str> = line.split_whitespace().collect();
    let T:f64 = vec[0].parse().unwrap_or(0.0);
    let A:f64 = vec[1].parse().unwrap_or(0.0);


    let scan = std::io::stdin();
    let mut line = String::new();
    let _ = scan.read_line(&mut line);
    let H: Vec<&str> = line.split_whitespace().collect();
    
    let rasidual = compute_temprature(A, T, H);

    // println!("{}", rasidual.iter().map(|(x, y)| (y, x)).min());
    let index_of_min: Option<usize> = rasidual
        .iter()
        .enumerate()
        .min_by(|&(_, a), &(_, b)| a.partial_cmp(b).unwrap_or(Ordering::Equal))
        .map(|(index, _)| index);

    println!("{}", index_of_min.unwrap()+1);
}