Cod sursa(job #1119922)

Utilizator NarTooNNever Roll NarTooN Data 24 februarie 2014 20:45:43
Problema Tribute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
//http://www.infoarena.ro/problema/tribute
#include <fstream>
using namespace std;
int frecvx[50005],frecvy[50005];
int main()
{
    ifstream cin("tribute.in");
    ofstream cout("tribute.out");

    int n=0,i,x,y,a,b,dx=0,dy=0,p,m;
    cin>>n>>dx>>dy;

    long long int sx=0,sy=0;
    for(i=1;i<=n;i++)
    {
        cin>>x>>y;

        sx+=x;
        sy+=y;
        frecvx[x]++;
        frecvy[y]++;
    }

    long long int minim=sx;
    for(a=-dx,b=0,p=0,m=n;a<=50000;a++,b++)
    {
        if(sx<minim)
            minim=sx;

        if(a>=0)
            p+=frecvx[a];
        if(b<50005)
            m-=frecvx[b];

        sx-=m;
        sx+=p;
    }

    long long int minim2=sy;
    for(a=-dy,b=0,p=0,m=n;a<=50000;a++,b++)
    {
        if(sy<minim2)
            minim2=sy;

        if(a>=0)
            p+=frecvy[a];
        if(b<50005)
            m-=frecvy[b];

        sy-=m;
        sy+=p;
    }
    cout<<minim+minim2<<'\n';

    cin.close();
    cout.close();
    return 0;
}