Cod sursa(job #1342090)

Utilizator ade_tomiEnache Adelina ade_tomi Data 13 februarie 2015 15:20:25
Problema Tribute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<stdio.h>
#include<algorithm>
#define inf 0x3f3f3f3f
using namespace std;
int min(int a, int b)
{

    if(a>b)
        return b;
    return a;
}
int n,a[50005],x[50005],y[50005],i,dx,dy;
int ans(int v[],int dif)
{

    sort(v+1,v+1+n);
    for(i=1;i<=n;i++)
    {
        a[i]=a[i-1]+v[i];

    }
    int st=0,dr=0;
    int mini=inf;
    for(i=0;i<=v[n]+dif;i++)
    {
        while(v[st]<i&&st<=n)
            st++;
        while(v[dr]<=i+dif&&dr<=n)
            dr++;
        st--;;
        dr--;
        int d=i*st-a[st]+(a[n]-a[dr])-(i+dif)*(n-dr);
        if(d<mini)
            mini=d;

    }
    return mini;
}
int main()
{

    freopen("tribute.in","r",stdin);
    freopen("tribute.out","w",stdout);
    scanf("%d%d%d",&n,&dx,&dy);
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&x[i],&y[i]);

    }
    printf("%d",ans(x,dx)+ans(y,dy));
    return 0;
}