#include #include #include using namespace std; const long double eps = 1e-6L; int N; long double X[102], Y[102]; long double result = 1000000000000.0L; long double Test(long double a, long double b) { long double resnow = 0; for (int i = 1; i <= N; ++i) resnow += 1.0L * ((a * X[i] + b) - Y[i]) * ((a * X[i] + b) - Y[i]); return resnow; } long double Test2(long double a) { long double l1 = -1000000.0L, l2 = 1000000.0L; while (l2 - l1 > eps) { long double mid1 = l1 + (l2 - l1) / 3; long double mid2 = l2 - (l2 - l1) / 3; if (Test(a, mid1) < Test(a, mid2)) l2 = mid2; else l1 = mid1; } return Test(a, l1); } int main() { cin.sync_with_stdio(false); cin >> N; for (int i = 1; i <= N; ++i) cin >> X[i] >> Y[i]; long double pn1 = -1000000.0L, pn2 = 1000000.0L; while (pn2 - pn1 > eps) { long double mid1 = pn1 + (pn2 - pn1) / 3; long double mid2 = pn2 - (pn2 - pn1) / 3; if (Test2(mid1) < Test2(mid2)) pn2 = mid2; else pn1 = mid1; } cout << fixed << setprecision(6) << Test2(pn1) << '\n'; }