Problem:
Score : 300 points

Problem Statement

There are N people living on a number line.

The i-th person lives at coordinate X_i.

You are going to hold a meeting that all N people have to attend.

The meeting can be held at any integer coordinate. If you choose to hold the meeting at coordinate P, the i-th person will spend (X_i - P)^2 points of stamina to attend the meeting.

Find the minimum total points of stamina the N people have to spend.

Constraints

All values in input are integers.

1 \leq N \leq 100

1 \leq X_i \leq 100

Input

Input is given from Standard Input in the following format:

N
X_1 X_2 ... X_N

Output

Print the minimum total stamina the N people have to spend.

Sample Input 1

2
1 4

Sample Output 1

5

Assume the meeting is held at coordinate 2. In this case, the first person will spend (1 - 2)^2 points of stamina, and the second person will spend (4 - 2)^2 = 4 points of stamina, for a total of 5 points of stamina. This is the minimum total stamina that the 2 people have to spend.

Note that you can hold the meeting only at an integer coordinate.

Sample Input 2

7
14 14 2 13 56 2 37

Sample Output 2

2354

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

#include<iostream>
using namespace std;

int main(){
    int N;
    cin >> N;
    int X[N];
    for(int i=0; i<N; i++){
        cin >> X[i];
    }

    for(int j=0; j<N-1; j++){
        for(int k=j; k<N; k++){
            if(X[j]>X[k]){
                int tmp=X[j];
                X[j]=X[k];
                X[k]=tmp;
            }
        }
    }

    int deltaX = X[N-1]-X[0];

    if(deltaX==0){
        cout<< 0 << "\n";
    }else{
    int sum_work_P[deltaX];
    int each_work_P;

    for(int i=0; i<deltaX; i++){
        int P = X[0]+i;
        sum_work_P[i]=0;
        for(int j=0; j<N; j++){
            each_work_P = (X[j]-P)*(X[j]-P);
            sum_work_P[i]+=each_work_P;
        }
    }

    for(int i=0; i<deltaX-1; i++){
        for(int j=i; j<deltaX; j++){
            if(sum_work_P[i]>sum_work_P[j]){
                int tmp=sum_work_P[j];
                sum_work_P[j]=sum_work_P[i];
                sum_work_P[i]=tmp;
            }
        }
    }

    cout << sum_work_P[0] << "\n";
    }
    return 0;
}