Pagini recente » Cod sursa (job #2438055) | Cod sursa (job #53577) | Cod sursa (job #1939551) | Cod sursa (job #323482) | Cod sursa (job #2661161)
#include <fstream>
#define MAX 50000
using namespace std;
ifstream cin("tribute.in");
ofstream cout("tribute.out");
long long Ox[MAX+100][2], Oy[MAX+100][2];
int N,ymx,xmx, DX, DY;
inline void scan();
inline void sumpart();
int main()
{
scan();
sumpart();
long long sum=0, Xmin=10e11, Ymin=10e11;
for(int cx=0; cx<=MAX-DX; ++cx)
{
if(cx)
sum=cx*Ox[cx-1][1]-Ox[cx-1][0];
sum+=(-cx-1)*(Ox[xmx][1]-Ox[cx+DX][1])+(Ox[xmx][0]-Ox[cx+DX][0]);
if(Xmin>sum)
Xmin=min(Xmin,sum);
}
for(int cy=0; cy<=MAX-DY; ++cy)
{
if(cy)
sum=cy*Oy[cy-1][1]-Oy[cy-1][0];
sum+=(-cy-1)*(Oy[ymx][1]-Oy[cy+DY][1])+(Oy[ymx][0]-Oy[cy+DY][0]);
Ymin=min(Ymin,sum);
}
sum=Xmin+Ymin;
cout<<sum<<'\n';
return 0;
}
inline void scan()
{
int x,y;
cin>>N>>DX>>DY;
for(int i=1; i<=N; ++i)
{
cin>>x>>y;
Ox[x][0]+=x;
Ox[x][1]++;
Oy[y][0]+=y;
Oy[y][1]++;
xmx=max(xmx, x);
ymx=max(ymx, y);
}
}
inline void sumpart()
{
for(int i=1; i<=MAX; ++i)
for(int j=0; j<2; ++j)
Ox[i][j]+=Ox[i-1][j],
Oy[i][j]+=Oy[i-1][j];
}
/*
2 2 2 2 17 17
2 2 2 2 5 5
1 5 5 9 14 14
1 3 3 4 5 5
*/
/*for(int j=0; j<2; ++j, cout<<'\n')
for(int i=1; i<=max(ymx,xmx)+2+max(DX,DY); ++i)
cout<<Ox[i][j]<<' ';
for(int j=0; j<2; ++j, cout<<'\n')
for(int i=1; i<=max(ymx,xmx)+2+max(DX,DY); ++i)
cout<<Oy[i][j]<<' ';*/