#include <cstdio>
#include <iostream>
#include <fstream>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <sstream>
#include <iomanip>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <string>
#include <ctime>
#include <cassert>
#include <utility>

using namespace std;

#define MAXN 105
#define MAX_ITER 1000
#define LOWER -1e30
#define UPPER 1e30

int N;
double X[MAXN];
double Y[MAXN];

double g(double a, double b) {
    double ret = 0.0;
    for(int i = 0; i < N; i++) {
        ret += (Y[i] - (a * X[i] + b)) * (Y[i] - (a * X[i] + b));
    }
    return ret;
}

double fB(double a) {
    double st = LOWER;
    double dr = UPPER;
    
    for(int it = 0; it < MAX_ITER; it++) {
        double L = (2 * st + dr) / 3;
        double R = (st + 2 * dr) / 3;
        if(g(a, L) < g(a, R)) {
            dr = R;
        }
        else {
            st = L;
        }
    }
    
    return g(a, st);
}

double fA() {
    double st = LOWER;
    double dr = UPPER;
    
    for(int it = 0; it < MAX_ITER; it++) {
        // st + (dr-st)/3 = st + dr/3 - st/3 = (2/3)st + dr/3 = (2st+dr) / 3
        double L = (2 * st + dr) / 3;
        double R = (st + 2 * dr) / 3;
        if(fB(L) < fB(R)) {
            dr = R;
        }
        else {
            st = L;
        }
    }
    
    return fB(st);
}

int main() {
//	freopen("date.in", "r", stdin);
//	freopen("date.out","w", stdout);
	
	cin >> N;
    for(int i = 0; i < N; i++)
        cin >> X[i] >> Y[i];
    
    double ans = fA();
    cout << fixed << setprecision(5) << ans << endl;
    
	return 0;
}