Cod sursa(job #675966)

Utilizator cocoshilaClaudiu cocoshila Data 8 februarie 2012 15:17:07
Problema Tribute Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
int const N=50001;
int ndx[N],ndy[N];

int calcul(int d, int nr[N])
{
	int i,scor=0,min=0,sum[N];
	sum[0]=nr[0];
	for(i=1;i<N;i++)
		sum[i]=sum[i-1]+nr[i];
	for(i=d+1;i<N;i++)
		scor+=nr[i]*(i-d);
	min=scor;
	for(i=1;i<N;i++)
	{
		scor+=sum[i-1]-(sum[N-1]-sum[i+d-1]);
		if(scor<min) min=scor;
	}
	return min;
}

int main()
{
	int i,n,x,y,dx,dy;
	freopen("tribute.in","r",stdin);
	freopen("tribute.out","w",stdout);
	scanf("%d%d%d",&n,&dx,&dy);
	for(i=1;i<=n;i++)
	{
		scanf("%d%d",&x,&y);
		ndx[x]++;
		ndy[y]++;
	}
	printf("%d",calcul(dx,ndx)+calcul(dy,ndy));
	return 0;
}