Pagini recente » Cod sursa (job #573455) | Cod sursa (job #1365863) | Cod sursa (job #966541) | Cod sursa (job #12637) | Cod sursa (job #130550)
Cod sursa(job #130550)
#include <stdio.h>
#include <math.h>
int n;
typedef struct
{
float x, y;
} Punct;
Punct v[500], p;
float suma, min;
float dist(double x, double y)
{
int i;
double suma = 0;
for (i = 1; i <= n; i++)
suma += sqrt((x - v[i].x) * (x - v[i].x) + (y - v[i].y) * (y - v[i].y));
return suma;
}
void caut()
{
float pas, d, min = 1000, last;
pas = 1;
d = dist(p.x, p.y);
if (min > d) min = d;
last = d;
while (pas > 0.0001)
{
p.x += pas;
d = dist(p.x, p.y);
if (d < min) min = d;
if (d > last)
{
p.x -= pas;
pas /= 10;
}
else last = d;
}
pas = 1;
while (pas > 0.0001)
{
p.y += pas;
d = dist(p.x, p.y);
if (min > d) min = d;
if (d > last)
{
p.y -= pas;
pas /= 10;
}
else last = d;
}
}
int main()
{
freopen("adapost2.in","r",stdin);
freopen("adapost2.out","w",stdout);
scanf("%d",&n);
int i;
p.x = p.y = 1000;
for (i = 1; i <= n; i++)
{
scanf("%f %f", &v[i].x, &v[i].y);
if (v[i].x < p.x) p.x = v[i].x;
if (v[i].y < p.y) p.y = v[i].y;
}
caut();
printf("%.4f %.4f\n",p.x, p.y);
return 0;
}