Cod sursa(job #1306110)

Utilizator heracleRadu Muntean heracle Data 30 decembrie 2014 16:04:47
Problema Tribute Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>

FILE* in=fopen("tribute.in","r");
FILE* out=fopen("tribute.out","w");

const int Q=50002;
int n,l,c;

int x[Q],y[Q];

int a[Q],b[Q];

int make(int v[],int h)
{
    int nr=0;
    for(int i=0; i<=Q-2; i++)
    {
        a[i]=nr+a[i-1];
        nr+=v[i];
    }

    nr=0;

    for(int i=Q-2; i>=0; i--)
    {
        b[i]=nr+b[i+1];
        nr+=v[i];
    }

    int min=2000000000;

    for(int i=1; i<=Q-2-h; i++)
    {
        if(a[i]+b[i+h]<min)
            min=a[i]+b[i+h];
    }

    return min;
}

int main()
{
    fscanf(in,"%d%d%d",&n,&l,&c);

    int a,b;

    for(int i=1; i<=n; i++)
    {
        fscanf(in,"%d%d",&a,&b);
        x[a]++;
        y[b]++;
    }

    int rez;

    rez=make(x,l);
    rez+=make(y,c);

    fprintf(out,"%d",rez);


    return 0;
}