// Template v2 #define pb push_back #define mp make_pair #define first x #define second y #define l(x) x<<1 #define r(x) x<<1 | 1 #define lsb(x) x & -x #include #include using namespace std; typedef long long LL; typedef long double LD; typedef vector VI; typedef pair PII; typedef pair PLL; typedef pair PKK; // primes less than 100 const int PRIM[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97}; const int CMAX = 10005; const int MOD = 700001; const int NMAX = 105; const short INF16 = 32000; const int INF = 2*1e9 + 6661369; const LL INF64 = LL(1e18); const LD EPS = 1e-9, PI = acos(-1.0); long double x[NMAX], y[NMAX]; int n; const long double eps = 1e-6L; long double check(long double a, long double b) { long double rs=0; for(int i=1; i<=n; ++i) rs+=1.0L*(y[i]-(a*x[i]+b))*(y[i]-(a*x[i]+b)); return rs; } long double ternary(long double a) { long double l=-1000000.0L; long double r=1000000.0L; while(r-l>eps) { long double p1=l+(r-l)/3; long double p2=r-(r-l)/3; if(check(a, p1) < check(a, p2)) r-=(r-l)/3; else l+=(r-l)/3; } return check(a,l); } void read() { cin>>n; for(int i=1; i<=n; ++i) cin>>x[i]>>y[i]; long double l=-1000000.0L, r=1000000.0L; while(r-l>eps) { long double p1=l+(r-l)/3; long double p2=r-(r-l)/3; if(ternary(p1) < ternary(p2)) r-=(r-l)/3; else l+=(r-l)/3; } cout<