Cod sursa(job #1602288)

Utilizator trutruvasilicaHuhurez Marius trutruvasilica Data 16 februarie 2016 18:21:10
Problema Tribute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;
ifstream fin("tribute.in");
ofstream fout("tribute.out");
const int N=50001;
int dx[N],dy[N];
long long dp[N],dp1[N];
long long mini(long long a,int b)
{
    if(a<b) return a;
    return b;
}
long long dist(int pct[],int length)
{
    int i,nr=0;
    long long sol=(1LL<<60);
    for(i=0;i<N;i++)
    {
        dp[i]=dp[i-1]+nr;
        nr+=pct[i];
    }
    nr=0;
    for(i=N-2;i>=0;i--)
    {
        dp1[i]=dp1[i+1]+nr;
        nr+=pct[i];
    }
    for(i=0;i<N-length;i++)
    {
        sol=mini(sol,dp[i]+dp1[i+length]);
    }
    return sol;
}
int main()
{
    int n,x,y,a,b;
    fin>>n>>a>>b;
    for(int i=1;i<=n;i++)
    {
        fin>>x>>y;
        dx[x]++;
        dy[y]++;
    }
    fout<<dist(dx,a)+dist(dy,b);
}