Cod sursa(job #1175125)

Utilizator ErikHEErik Henning ErikHE Data 24 aprilie 2014 14:50:01
Problema Tribute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <iostream>
using namespace std;

int frecvx[50005],frecvy[50005];

int main()
{
    ifstream fin("tribute.in");
    ofstream fout("tribute.out");

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

    long long sx=0,sy=0;
    for(i=1;i<=n;i++)
    {
        fin>>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<=50001;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<=50001;a++,b++)
    {
        if(sy<minim2)
            minim2=sy;

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

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

    fin.close();
    fout.close();
    return 0;
}