Cod sursa(job #2330130)

Utilizator flaviu.albuAlbu Flaviu Bogdan flaviu.albu Data 27 ianuarie 2019 21:49:48
Problema Pachete Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <iostream>
#include <fstream>
using namespace std;
int manhat(long  x1,long y1,long x2,long y2)
{
    if(x1<x2)
        if(y1<y2)return (x2-x1)+(y2-y1);
        else return (x2-x1)+(y1-y2);
    else if(y1<y2) return(x1-x2)+(y2-y1);
    else return (x1-x2)+(y1-y2);
}

int main()
{
    ifstream f("pachete.in");
    ofstream g("pachete.out");
    long long a[5][50001],x,y,f1,f2;
    int n,i,j,k;
    f>>n;
    f>>f1>>f2;

    k=n;
    for(i=1;i<=n;i++)
            f>>a[1][i]>>a[2][i];
            for(i=1;i<=n;i++)
                {

                    a[3][i]=manhat(f1,f2,a[1][i],a[2][i]);
                    a[4][i]=-1;


                }

    for(i=1;i<=n;i++)
        {
            int p=0,q=0,min1=0;
            for(j=1;j<=n;j++)
    {
        if(a[4][j]!=0)
        if(i!=j)
        {
        if(a[3][i]>=a[3][j]+manhat(a[1][i],a[2][i],a[1][j],a[2][j]))
        {
            p++;
             min1=a[3][j]+manhat(a[1][i],a[2][i],a[1][j],a[2][j]);
             q=j;

        }
        }
    }
        if(p!=0)
        {

            k--;
            a[3][i]=min1;
            a[4][i]=q;
            a[4][q]=0;
        }
        }
        g<<k;

}