Cod sursa(job #834536)

Utilizator dtoniucDaniel Toniuc dtoniuc Data 14 decembrie 2012 16:58:12
Problema Tribute Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <climits>
using namespace std;

int n,dx,dy,x[50001],y[50001],s[50001],sy[50001],p=0;
int maxi=INT_MAX;
int main()
{
    ifstream fin("tribute.in");
    ofstream fout("tribute.out");

    fin>>n>>dx>>dy;
    for(int i=1;i<=n;i++)
        fin>>x[i]>>y[i];
    sort(x+1,x+n+1);
    sort(y+1,y+n+1);
    for(int i=x[1];i<=x[n]-dx;i++)
    {
        ++p;
        for(int j=1;j<=n;j++)
        {
            if(x[j]<i) s[p]+=(i-x[j]);
                else if(x[j]>i+dx) s[p]+=x[j]-i-dx;
        }
    }
    p=0;
    for(int i=y[1];i<=y[n]-dy;i++)
    {
        ++p;
        for(int j=1;j<=n;j++)
        {
            if(y[j]<i) sy[p]+=(i-y[j]);
                else if(y[j]>i+dy) sy[p]+=y[j]-i-dy;
        }
    }
    for(int i=1;i<=p;i++)
        for(int j=1;j<=p;j++)
        {
            if(s[i]+sy[j]<maxi) maxi=s[i]+sy[j];
        }
    fout<<maxi;
    return 0;
}