Cod sursa(job #70566)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 6 iulie 2007 14:06:24
Problema Tribute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 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()
{
	FILE *f,*g;
	f=fopen("tribute.in","r");
	g=fopen("tribute.out","w");
	fscanf(f,"%ld%ld%ld",&n,&dx,&dy);
	for(i=1;i<=n;i++)
	{
		fscanf(f,"%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;
	fprintf(g,"%ld\n",sol);
	fcloseall();
	return 0;
}