Pagini recente » Borderou de evaluare (job #683485) | Cod sursa (job #414379) | Cod sursa (job #3133194) | Cod sursa (job #1146798) | Cod sursa (job #2341986)
#include <fstream>
#define N 50000
using namespace std;
int stx[50005], fr1[50005], fr2[50005], drx[50005], sty[50005], dry[50005], fr[50005];
int n, dx, dy, i, j, x, y, min1=2000000000, min2=2000000000, maxx, maxy;
int main () {
ifstream fin ("tribute.in");
ofstream fout ("tribute.out");
fin>>n>>dx>>dy;
for (i=1;i<=n;i++) {
fin>>x>>y;
maxx=max(x, maxx);
maxy=max(y, maxy);
fr1[x]++;
fr2[y]++;
}
fr[0]=fr1[0];
for (i=1;i<=maxx;i++) {
fr[i]=fr[i-1]+fr1[i];
}
stx[0]=0;
for (i=1;i<=maxx;i++) {
stx[i]=fr[i-1]+stx[i-1];
}
fr[maxx]=fr1[maxx];
for (i=maxx-1;i>=0;i--) {
fr[i]=fr[i+1]+fr1[i];
}
drx[maxx]=0;
for (i=maxx-1;i>=0;i--) {
drx[i]=drx[i+1]+fr[i+1];
}
for (i=0;i<=maxx;i++) {
min1=min(min1, stx[i]+drx[i+dx]);
}
fr[0]=fr2[0];
for (i=1;i<=maxy;i++) {
fr[i]=fr[i-1]+fr2[i];
}
sty[0]=0;
for (i=1;i<=maxy;i++) {
sty[i]=sty[i-1]+fr[i-1];
}
fr[maxy]=fr2[maxy];
for (i=maxy-1;i>=0;i--) {
fr[i]=fr[i+1]+fr2[i];
}
dry[maxy]=0;
for (i=maxy-1;i>=0;i--) {
dry[i]=dry[i+1]+fr[i+1];
}
for (i=0;i<=maxy;i++) {
min2=min(min2, sty[i]+dry[i+dy]);
}
fout<<min1+min2;
return 0;
}