Pagini recente » Cod sursa (job #11234) | Cod sursa (job #392220) | Cod sursa (job #3188645) | Cod sursa (job #2084535) | Cod sursa (job #2586848)
#include <bits/stdc++.h>
#define NMAX 50010
#define inf 100000000000
#define N 50005
using namespace std;
ifstream fin("tribute.in");
ofstream fout("tribute.out");
long n,dx,dy,rasp,nrpct,x,y,add;
long colst[NMAX],coldr[NMAX],linsus[NMAX],linjos[NMAX],col[NMAX],lin[NMAX];
int main()
{
fin>>n>>dx>>dy;
for(int i=1;i<=n;i++)
{
fin>>x>>y;
x++;
y++;
col[x]++;
lin[y]++;
}
nrpct=0;
add=0;
for(int i=1;i<=N;i++)
{
add=col[i];
colst[i]=colst[i-1]+nrpct;
nrpct+=add;
}
nrpct=0;
add=0;
for(int i=N;i>=1;i--)
{
add=col[i];
coldr[i]=coldr[i+1]+nrpct;
nrpct+=add;
}
nrpct=0;
add=0;
for(int i=N;i>=1;i--)
{
add=lin[i];
linsus[i]=linsus[i+1]+nrpct;
nrpct+=add;
}
nrpct=0;
add=0;
for(int i=1;i<=N;i++)
{
add=lin[i];
linjos[i]=linjos[i-1]+nrpct;
nrpct+=add;
}
for(int i=1;i<=N;i++)
{
if(i+dy<=N)lin[i]=linjos[i]+linsus[i+dy];
else lin[i]=inf;
if(i+dx<=N)col[i]=colst[i]+coldr[i+dx];
else col[i]=inf;
}
sort(lin+1,lin+N+1);
sort(col+1,col+N+1);
fout<<lin[1]+col[1];
}