Pagini recente » Cod sursa (job #908647) | Cod sursa (job #1885565) | Cod sursa (job #457080) | Cod sursa (job #2257967) | Cod sursa (job #227203)
Cod sursa(job #227203)
#include<stdio.h>
#include<math.h>
int n,i;
double a[50002],b[50002],nf,eroare,epsilon=0.001;
void readd(),remake();
double dist(int i1,int i2);
int main()
{
readd();
return 0;
}
void readd()
{
freopen("adapost2.in","rt",stdin);
freopen("adapost2.out","wt",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%lf%lf",&a[i],&b[i]);
for(i=1;i<=n;i++){a[0]+=a[i];b[0]+=b[i];nf=nf+1;}
a[0]/=nf;b[0]/=nf;
for(;;)
{ remake();
eroare=dist(0,n+1);
if(eroare<epsilon)break;
a[0]=a[n+1];b[0]=b[n+1];
}
printf("%.4lf %.4lf",a[0],b[0]);
}
void remake()
{
double sa,sb,sd,val;
sa=sb=sd=0;
for(i=1;i<=n;i++)
{ val=dist(0,i);
sa+=a[i]/val;
sb+=b[i]/val;
sd+=1/val;
}
a[n+1]=sa/sd;
b[n+1]=sb/sd;
}
double dist(int i1,int i2)
{
return sqrt((a[i1]-a[i2])*(a[i1]-a[i2])+(b[i1]-b[i2])*(b[i1]-b[i2]));
}