Pagini recente » Cod sursa (job #2482419) | Cod sursa (job #1889891) | Cod sursa (job #385887) | Cod sursa (job #2149665) | Cod sursa (job #2586983)
#include <bits/stdc++.h>
using namespace std;
ifstream f("tribute.in");
ofstream g("tribute.out");
long long int n,di,dj,x,y;
long long int lin[50005],col[50005],part1,part2;
long long int st1[50005],dr1[50005],st2[50005],dr2[50005];
long long minim,aux;
int main()
{
f>>n>>dj>>di;
for(int i=1;i<=n;i++){
f>>x>>y;
lin[x+1]++;
col[y+1]++;
}
for(int i=1;i<=50001;i++){
st1[i]=lin[i-1]+st1[i-1]+part1;
part1+=lin[i-1];
}
for(int i=50001;i>=1;i--){
dr1[i]=lin[i+1]+dr1[i+1]+part2;
part2+=lin[i+1];
}
aux=100000000000;
for(int i=1;i<=50001-di;i++)
{
aux=min(aux,st1[i]+dr1[i+di]);
}
minim=aux;
part1=0;
for(int i=1;i<=50001;i++){
st2[i]=col[i-1]+st2[i-1]+part1;
part1+=col[i-1];
}
part2=0;
for(int i=50001;i>=1;i--){
dr2[i]=col[i+1]+dr2[i+1]+part2;
part2+=col[i+1];
}
aux=100000000000;
for(int i=1;i<=5-dj;i++)
{
aux=min(aux,st2[i]+dr2[i+dj]);
}
minim+=aux;
g<<minim;
}