Pagini recente » Cod sursa (job #2860499) | Cod sursa (job #819533) | Cod sursa (job #1466519) | Cod sursa (job #372315) | Cod sursa (job #2467418)
#include <bits/stdc++.h>
using namespace std;
ifstream in("tribute.in");
ofstream out("tribute.out");
const int N = 50005;
typedef long long lint;
struct p
{
lint x,y;
}v[N];
lint cnt[2][N], i1, i2, n;
lint solve()
{
lint left=0,right=n,dist=0,Min = N;
for (lint i = 0; i<=N; i++)
dist+=cnt[1][i]*(i+1);
for (lint i = 0; i<=N; i++)
{
dist-=right;
right-=cnt[1][i];
left+=cnt[0][i];
dist+=left;
Min = min(Min,dist);
}
return Min;
}
int main()
{
lint dx,dy;
in >> n >> dx >> dy;
for (lint i = 1; i<=n; i++)
in >> v[i].x >> v[i].y;
for (lint i = 1; i<=n; i++)
{
cnt[1][v[i].x]++;
cnt[0][v[i].x+dx+1]++;
}
lint Minx = solve();
memset(cnt[0],0,sizeof(cnt[0]));
memset(cnt[1],0,sizeof(cnt[1]));
for (lint i = 1; i<=n; i++)
{
cnt[1][v[i].y]++;
cnt[0][v[i].y+dy+1]++;
}
lint Miny = solve();
out << Minx + Miny;
}