Pagini recente » Cod sursa (job #28345) | Cod sursa (job #30637) | Cod sursa (job #2998958) | Cod sursa (job #37059) | Cod sursa (job #31238)
Cod sursa(job #31238)
#include<stdio.h>
long long int n,dx,dy,a,b,i,x[50001],y[50001],l,s[50001],xmax,ymax,ssup,sinf,j,m,solx,p,sc,soly,sol;
int main()
{
FILE *f,*g;
f=fopen("tribute.in","r");
g=fopen("tribute.out","w");
fscanf(f,"%lld%lld%lld",&n,&dx,&dy);
xmax=0;ymax=0;
for(i=1;i<=n;i++)
{fscanf(f,"%lld%lld",&a,&b);
x[a]=x[a]+1;y[b]=y[b]+1;
if(a>xmax)xmax=a;if(b>ymax)ymax=b;
}
l=xmax;
s[0]=x[0];
for(i=1;i<=l;i++)
{s[i]=s[i-1]+x[i];}
m=dx;ssup=0;sinf=0;
for(j=m;j<=l;j++)
ssup=ssup+s[l]-s[j];
solx=ssup;
p=0;
while(ssup)
{
sinf=sinf+s[p];
ssup=ssup-s[l]+s[m+p];
sc=ssup+sinf;
if(sc<solx)solx=sc;
}
l=ymax;
s[0]=y[0];
for(i=1;i<=l;i++)
{s[i]=s[i-1]+y[i];}
m=dy;ssup=0;sinf=0;
for(j=m;j<=l;j++)
ssup=ssup+s[l]-s[j];
soly=ssup;
p=0;
while(ssup)
{
sinf=sinf+s[p];
ssup=ssup-s[l]+s[m+p];
sc=ssup+sinf;
if(sc<soly)soly=sc;
}
sol=solx+soly;
fprintf(g,"%lld\n",sol);
fcloseall();
return 0;
}