Pagini recente » Cod sursa (job #63785) | Cod sursa (job #3020937) | Cod sursa (job #1392157) | Cod sursa (job #2718968) | Cod sursa (job #739971)
Cod sursa(job #739971)
#include <cstdio>
using namespace std;
#define maxn 50010
#define min(a,b) a<b?a:b
long rezst,rezdr,n,i,a,b,dx,dy;
long Nrst,Nrdr,Rst,Rdr,st,dr;
long X[maxn];
long Y[maxn];
int main()
{
freopen("tribute.in","r",stdin);
freopen("tribute.out","w",stdout);
scanf ( "%d", &n);
scanf ( "%d", &dx);
scanf ( "%d", &dy);
for ( i=1; i<=n; i++ )
{
scanf ("%d %d",&a,&b);
X[a]++;
Y[b]++;
}
// calculam pt x
for ( dr=dx; dr<=50005; dr++ )
{
Rdr+=X[dr]*(dr-dx);
Nrdr+=X[dr];
}
rezst=Rdr;
for ( st=0,dr=dx; dr<=50005; st++,dr++ )
{
Nrst+=X[st];
Rst+=Nrst;
Nrdr-=X[dr];
Rdr-=Nrdr;
rezst=min ( rezst,Rdr+Rst );
}
Rdr=0;
Nrdr=0;
Rst=0;
Nrst=0;
for ( dr=dy; dr<=50005; dr++ )
{
Rdr+=Y[dr]*(dr-dy);
Nrdr+=Y[dr];
}
rezdr=Rdr;
for ( st=0,dr=dy; dr<=50005; st++,dr++ )
{
Nrst+=Y[st];
Rst+=Nrst;
Nrdr-=Y[dr];
Rdr-=Nrdr;
rezdr=min ( rezdr,Rdr+Rst );
}
printf ( "%d", rezst+rezdr );
return 0;
}