Pagini recente » Cod sursa (job #76014) | Cod sursa (job #2595571) | Cod sursa (job #64621) | Cod sursa (job #17203) | Cod sursa (job #122111)
Cod sursa(job #122111)
#include<fstream.h>
ifstream f("tribute.in");
ofstream g("tribute.out");
#define lim 50100
#define inf 2000000000
#define nmax 50000
unsigned int st[lim], dr[lim], st1[lim], dr1[lim],n , x, y, dx, dy, a[lim], b[lim];
long sum, min, miny, i;
int main()
{
f>>n>>dx>>dy;
for(i=1;i<=n;i++)
{
f>>x>>y;
a[x]++;
b[y]++;
}
f.close();
sum=a[0];
for(i=1;i<=nmax;i++)
{
st[i]=st[i-1]+sum;
sum=sum+a[i];
}
sum=0;
for(i=nmax;i>=0;i--)
{
dr[i]=dr[i+1]+sum;
sum=sum+a[i];
}
min=inf;
for(i=0;i<=nmax-dx;i++) if(st[i]+dr[i+dx]<min) min=st[i]+dr[i+dx];
sum=b[0];
for(i=1;i<=nmax;i++)
{
st1[i]=st1[i-1]+sum;
sum=sum+b[i];
}
sum=0;
for(i=nmax;i>=0;i--)
{
dr1[i]=dr1[i+1]+sum;
sum=sum+b[i];
}
miny=inf;
for(i=0;i<=nmax-dy;i++) if(st1[i]+dr1[i+dy]<miny) miny=st1[i]+dr1[i+dy];
g<<miny+min;
g.close();
return 0;
}