Pagini recente » Cod sursa (job #1524852) | Cod sursa (job #1625533) | Cod sursa (job #879255) | Cod sursa (job #1041000) | Cod sursa (job #1264592)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("tribute.in");
ofstream fout("tribute.out");
#define MAX 50003
int x[MAX], y[MAX];
int main()
{
int s=0, n, dx, dy, i, st, dr, rezx, rezy;
fin>>n;
fin>>dx>>dy;
for(i=1;i<=n;i++)
{
fin>>x[i]>>y[i];
}
sort(x+1, x+n+1);
sort(y+1, y+n+1);
st=dr=(n+1)/2;
x[0]=-1000000;
x[n+1]=1000000;
while(x[dr]-x[st]<=dx)
{
if(x[dr+1]-x[st]<=dx)
dr++;
else
{
rezx=x[st];
rezy=x[st]+dx;
break;
}
if(x[dr]-x[st-1]<=dx)
st--;
else
{
rezx=x[dr]-dx;
rezy=x[dr];
break;
}
}
for(i=1;i<=n;i++)
{
if(x[i]<rezx)
s+=rezx-x[i];
else if(x[i]>rezy)
s+=x[i]-rezy;
}
st=dr=(n+1)/2;
y[0]=-1000000;
y[n+1]=1000000;
while(y[dr]-y[st]<=dy)
{
if(y[dr+1]-y[st]<=dy)
dr++;
else
{
rezx=y[st];
rezy=y[st]+dy;
break;
}
if(y[dr]-y[st-1]<=dy)
st--;
else
{
rezx=y[dr]-dy;
rezy=y[dr];
break;
}
}
for(i=1;i<=n;i++)
{
if(y[i]<rezx)
s+=rezx-y[i];
else if(y[i]>rezy)
s+=y[i]-rezy;
}
fout << s;
}