Cod sursa(job #762294)

Utilizator ion824Ion Ureche ion824 Data 29 iunie 2012 17:52:01
Problema Adapost 2 Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<fstream>
#include<iomanip>
#include<cmath>
using namespace std;
const double eps=0.0001;
int N;
double x[50005],y[50005],daux;

double verific(double midx,double midy){
       daux=0;
       for(int i=1;i<=N;++i)       
        daux+=sqrt((x[i]-midx)*(x[i]-midx)+(y[i]-midy)*(y[i]-midy));              
  return daux;      
}

int main(void){
    ifstream fin("adapost2.in");
    ofstream fout("adapost2.out");
    int i;
    double midx,midy,pasx,W;
    fin>>N;
    for(i=1;i<=N;++i)
      fin>>x[i]>>y[i];

    midx=x[1]; midy=y[1]; pasx=512;
    while(pasx>=eps){      
        W=verific(midx,midy);               
        if(verific(midx+pasx,midy)<W){ midx+=pasx; continue; }
        if(verific(midx,midy+pasx)<W){ midy+=pasx; continue; }
        if(verific(midx-pasx,midy)<W){ midx-=pasx; continue; }
        if(verific(midx,midy-pasx)<W){ midy-=pasx; continue; }
        pasx/=2;                          
            }
    fout<<setprecision(4)<<fixed;
    fout<<midx<<' '<<midy<<'\n';
 return 0;   
}