Cod sursa(job #2593978)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 5 aprilie 2020 01:24:16
Problema Adapost 2 Scor 39
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("adapost2.in");
ofstream g("adapost2.out");

int n;
float x[50005],y[50005],pas,ind1,ind2,suma;
bool OK;

float ad(float a,float b,int i){
 return sqrt( (a - x[i])*(a - x[i]) + (b - y[i])*(b - y[i]) ) ;
}
int main()
{
f>>n;
for(int i=1;i<=n;i++)
 f>>x[i]>>y[i];
pas=1000; ind1=0; ind2=0;
for(int i=1;i<=n;i++)
 suma+=ad(ind1,ind2,i);
while(pas>=0.001){
 pas/=10;
 OK=1;
 float di[4]={0,0,pas,-pas};
 float dj[4]={pas,-pas,0,0};
 float ni,nj;
 while(OK==1){
  OK=0;
  for(int directie=0;directie<4;directie++){
    ni=ind1+di[directie];
    nj=ind2+dj[directie];
    float s=0;
    for(int i=1;i<=n;i++)
     s+=ad(ni,nj,i);
    if(s<suma){
     OK=1;
     suma=s;
     ind1=ni;
     ind2=nj;
    }
  }
 }
}

g<<ind1<<" "<<ind2;

}