Pagini recente » Cod sursa (job #2435386) | Cod sursa (job #2074825) | Cod sursa (job #738705) | Cod sursa (job #2421117) | Cod sursa (job #2377880)
#include <bits/stdc++.h>
using namespace std;
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
const double eps = 0.0005;
const int N = 50010;
struct point{
double x, y;
} a[N];
int n;
double step = 500, mn = 1e9, x, y;
double dist(double i3, double j3){
double rs = 0;
for (int i=1; i<=n; i++) rs += sqrt((a[i].x-i3)*(a[i].x-i3) + (a[i].y-j3)*(a[i].y-j3));
return rs;
}
int main(){
ifstream cin ("adapost2.in");
ofstream cout ("adapost2.out");
cin >> n;
for (int i=1; i<=n; i++) cin >> a[i].x >> a[i].y, x += a[i].x, y += a[i].y;
x /= n; y /= n;
while (step > eps){
for (int dir=0; dir<4; dir++){
double i2 = x + step*dx[dir], j2 = y + step*dy[dir];
double t = dist(i2, j2);
if (t < mn) x = i2, y = j2, mn = t;
}
step /= 2;
}
cout << fixed << setprecision(3) << x << " " << y;
return 0;
}