Pagini recente » Cod sursa (job #630992) | Cod sursa (job #1796862) | Cod sursa (job #8411) | Cod sursa (job #2781550) | Cod sursa (job #233360)
Cod sursa(job #233360)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
float A[50001][2],X,Y;
int n;
float dist(float x,float y)
{
float s=0;
for (int i=0;i<n;i++) s+= sqrt((A[i][0]-x)*(A[i][0]-x)+(A[i][1]-y)*(A[i][1]-y));
return s;
}
int main()
{
FILE *in = fopen("adapost2.in","r");
FILE *out = fopen("adapost2.out","w");
fscanf(in,"%d",&n);
int i;
for (i=0;i<n;i++) fscanf(in,"%f%f",&A[i][0],&A[i][1]),X = X+A[i][0],Y = Y+A[i][1];
X = X/n;
Y = Y/n;
float S = dist(X,Y),eror=1;
char ok;
while (eror>0.00001)
{
do
{
ok=1;
if (S>dist(X,Y+eror)) {Y=Y+eror;S=dist(X,Y);ok=0;}
if (S>dist(X,Y-eror)) {Y=Y-eror;S=dist(X,Y);ok=0;}
if (S>dist(X+eror,Y)) {X=X+eror;S=dist(X,Y);ok=0;}
if (S>dist(X-eror,Y)) {X=X-eror;S=dist(X,Y);ok=0;}
} while (!ok);
eror = eror/10;
}
fprintf(out,"%0.4f %0.4f",X,Y);
}