Cod sursa(job #2344357)

Utilizator triscacezarTrisca Vicol Cezar triscacezar Data 15 februarie 2019 00:31:32
Problema Adapost 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("adapost2.in");
ofstream g("adapost2.out");

int n,i;
double relax,relay,dist,VAL,dx[10],dy[10],x[50010],y[50010];

double val(double X,double Y)
{
    double ret=0;
    for(int i=1;i<=n;i++)
        ret+=sqrt((X-x[i])*(X-x[i])+(Y-y[i])*(Y-y[i]));
    return ret;
}

int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>x[i]>>y[i];
    dx[0]= 1,dy[0]= 0;
    dx[1]= 0,dy[1]= 1;
    dx[2]=-1,dy[2]= 0;
    dx[3]= 0,dy[3]=-1;
    relax=500,relay=500;
    VAL=val(relax,relay);
    dist=250;
    while(dist>0.000001)
    {
        for(i=0;i<4;i++)
        {
            double aux=val(relax+dist*dx[i],relay+dist*dy[i]);
            if(aux<VAL)
            {
                VAL=aux;
                relax+=dist*dx[i];
                relay+=dist*dy[i];
            }
        }
        dist/=2;
    }
    g<<fixed<<setprecision(3)<<relax<<' '<<relay;
    return 0;
}