Cod sursa(job #701901)

Utilizator CBogdanCiobanu Bogdan CBogdan Data 1 martie 2012 18:25:09
Problema Tribute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
long int n,dx,dy,i,ax,ay,cx[50001],cy[50001],cont,dl[50001],dr[50001],solp,solx,soly,sol;
int main()
{
	freopen("tribute.in","r",stdin);
	freopen("tribute.out","w",stdout);
	scanf("%ld%ld%ld",&n,&dx,&dy);
	for(i=1;i<=n;i++)
	{
		scanf("%ld%ld",&ax,&ay);
		cx[ax]++;cy[ay]++;
	}
	cont=0;
	for(i=1;i<=50000;i++)
	{ cont+=cx[i-1];
	  dl[i]=dl[i-1]+cont;
	}
	cont=0;
	for(i=49999;i>=0;i--)
	{ cont+=cx[i+1];
	  dr[i]=dr[i+1]+cont;
	}
	solx=2000000000;
	for(i=0;i<=50000-dx;i++)
	{ solp=dl[i]+dr[i+dx];
	  solx=(solx<solp)?solx:solp;
	}
	cont=0;
	for(i=1;i<=50000;i++)
	{ cont+=cy[i-1];
	  dl[i]=dl[i-1]+cont;
	}
	cont=0;
	for(i=49999;i>=0;i--)
	{ cont+=cy[i+1];
	  dr[i]=dr[i+1]+cont;
	}
	soly=2000000000;
	for(i=0;i<=50000-dy;i++)
	{ solp=dl[i]+dr[i+dy];
	  soly=(soly<solp)?soly:solp;
	}
	sol=solx+soly;
	printf("%ld\n",sol);
	return 0;
}