Problem:
Score : 200 points

Problem Statement

Niwango-kun is an employee of Dwango Co., Ltd.

One day, he is asked to generate a thumbnail from a video a user submitted.

To generate a thumbnail, he needs to select a frame of the video according to the following procedure:

Get an integer N and N integers a_0, a_1, ..., a_{N-1} as inputs. N denotes the number of the frames of the video, and each a_i denotes the representation of the i-th frame of the video.

Select t-th frame whose representation a_t is nearest to the average of all frame representations.

If there are multiple such frames, select the frame with the smallest index.

Find the index t of the frame he should select to generate a thumbnail.

Constraints

1 \leq N \leq 100

1 \leq a_i \leq 100

All numbers given in input are integers

Input

Input is given from Standard Input in the following format:

N
a_{0} a_{1} ... a_{N-1}

Output

Print the answer.

Sample Input 1

3
1 2 3

Sample Output 1

1

Since the average of frame representations is 2, Niwango-kun needs to select the index 1, whose representation is 2, that is, the nearest value to the average.

Sample Input 2

4
2 5 2 5

Sample Output 2

0

The average of frame representations is 3.5.

In this case, every frame has the same distance from its representation to the average.

Therefore, Niwango-kun should select index 0, the smallest index among them.

Solution in C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include<bits/stdc++.h>

#define int long long
#define pb push_back
#define ff first
#define ss second
#define vi vector<int>
#define vii vector<vector<int>>
#define pr pair<int,int>
#define endl "\n"
#define sz(x) (int)(x).size()
#define trace(x) cerr<<#x<<": "<<x<<" "<<endl;
#define all(c) (c).begin(), (c).end()

#define REP(i,n) for(int i=0;i<(n);i++)
#define FOR(i,a,b) for(int i=(a);i<=(b);i++)
#define FORD(i,a,b) for(int i=(a);i>=(b);i--)


const int MOD = 1e9 + 7 ;
const int INF = 0;
const int MAXN = 1e5 + 10;

using namespace std;



int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n;
    cin >> n;
    vi arr(n);
    int hsh[101];
    memset(hsh,-1,sizeof hsh);
    float num = 0;
    for(int i = 0;i<n;i++){
        cin >> arr[i];
        if(hsh[arr[i]] == -1) hsh[arr[i]] = i;
        num += arr[i];
    }

    num /= n;

    //trace(num);
    set<int> s(all(arr));
    //cout<<sz(s)<<endl;
    auto it = lower_bound(all(s),round(num));
    //trace(*it);
    if(it == s.end()){
        cout<<hsh[*(--it)]<<endl;
    }   
    else if(it == s.begin()) cout<<hsh[*(it)]<<endl;
    else{
        float diff  = abs(num - 1.0 * (*it));
        float diff1  = abs(num - 1.0 * (*(--it)));
        
        if(diff >= diff1) cout<<hsh[*it];
        else cout<<hsh[*(++it)]<<endl;
           
    }


    return 0;
        
}
// CHECK FOR CORNER CASES LIKE 0,1 etc.