Cod sursa(job #1662501)

Utilizator TudorFinaruTudor Cristian Finaru TudorFinaru Data 24 martie 2016 19:59:00
Problema Tribute Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream f("tribute.in");
ofstream g("tribute.out");
int n,dx,dy,x[50002],y[50002];

int minim(int a, int b, int c, int d, int e)
{
    int mini;
    mini=min(a,b); mini=min(mini,c); mini=min(mini,d); mini=min(mini,e);
    return mini;
}

int main()
{
    int i,j,k,distmin,distanta;
    int mini=5000000;
    f>>n>>dx>>dy;
    for(i=1;i<=n;i++)
    {
        f>>x[i]>>y[i];
        x[i]++;y[i]++;
    }
    int k1,k2;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++) { distanta=0;
            for(k=1;k<=n;k++)
            {
                for(k1=i;k1<=i+x[i]-1 && k1<=n;k1++)
                    for(k2=j;k2<=j+y[i]-1 && k2<=n;k2++)
                        distmin=minim((abs(k1-x[k])+abs(k2-y[k])) , (abs(k1-1-x[k])+abs(k2-y[k])) , (abs(k1-x[k])+abs(k2+1-y[k])) , (abs(k1+1-x[k])+abs(k2-y[k])) , (abs(k1-x[k])+abs(k2-1-y[k])));
                distanta+=distmin;
            }
            if(distanta<mini) mini=distanta;
            }
    }
    g<<mini<<'\n';
    f.close();
    g.close();
    return 0;
}