Cod sursa(job #1013956)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 21 octombrie 2013 22:26:41
Problema Tribute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
using namespace std;
ifstream f("tribute.in");
ofstream g("tribute.out");
int N;
struct Point{
int x;
int y;
} Array[50005];
int DX,DY;
int NbX[50005],NbY[50005];
void Read()
{
    int i;
    f>>N>>DX>>DY;
    for(i=1;i<=N;i++)
    {
        f>>Array[i].x>>Array[i].y;
        NbX[Array[i].x]++;
        NbY[Array[i].y]++;
    }
}
int Solve(int X[],int D)
{
    int i,S,current=0;
    for(i=D;i<50001;i++)
        current+=(i-D)*X[i];
    S=current;
    for(i=1;i<50001;i++)
        X[i]+=X[i-1];
    for(i=1;i+D<50001;i++)
    {
        current+=X[i-1];
        current-=(N-X[i+D-1]);
        S=min(S,current);
    }
    return S;
}
void Browse()
{
    g<<Solve(NbX,DX)+Solve(NbY,DY)<<"\n";
}
int main()
{
    Read();
    Browse();
    return 0;
}