Pagini recente » Cod sursa (job #1103376) | Cod sursa (job #1400517) | Cod sursa (job #1869735) | Cod sursa (job #1971785) | Cod sursa (job #554146)
Cod sursa(job #554146)
# include <fstream>
# define DIM 50005
# define INF 2000000000
# define ll long long
using namespace std;
ll n, dx, dy, x[DIM], y[DIM], st[DIM], dr[DIM], X1, X0=INF, Y1, Y0=INF;
void read ()
{
ifstream fin ("tribute.in");
fin>>n>>dx>>dy;
ll t;
for(int i=1;i<=n;++i)
{
fin>>t;++t;
++x[t];
if (t<X0)X0=t;
if (t>X1)X1=t;
fin>>t;++t;
++y[t];
if (t<Y0)Y0=t;
if (t>Y1)Y1=t;
}
}
ll f (ll v[], ll d, ll a, ll b)
{
for(int i=1;i<DIM-2;++i)
st[i]=dr[i]=0;
ll i, el=0, r=INF;
for(i=a;i<=b;++i)
{
st[i]=st[i-1]+el;
el+=v[i];
}
el=0;
for(i=b;i>=a;--i)
{
dr[i]=dr[i+1]+el;
el+=v[i];
}
for(i=a;i+d<=b;++i)
if (st[i]+dr[i+d]<r)
r=st[i]+dr[i+d];
return r;
}
int main ()
{
read ();
ofstream fout ("tribute.out");
fout<<f(x,dx,X0,X1)+f(y,dy,Y0,Y1);
return 0;
}