Pagini recente » Cod sursa (job #1938519) | Cod sursa (job #331816) | Cod sursa (job #835547) | Cod sursa (job #332677) | Cod sursa (job #1703745)
#include <cstdio>
#define MAXN 50000
#define INF 2000000000
using namespace std;
int xspate[MAXN+5], xfata[MAXN+5], yspate[MAXN+5], yfata[MAXN+5];
#define xspate (xspate+2)
#define xfata (xfata+2)
#define yspate (yspate+2)
#define yfata (yfata+2)
int main()
{
FILE *fin, *fout;
int n, dx, dy, i, x, y, minx, miny;
fin=fopen("tribute.in", "r");
fscanf(fin, "%d%d%d", &n, &dx, &dy);
for(i=0; i<n; i++){
fscanf(fin, "%d%d", &x, &y);
xspate[x]++;
xfata[x]++;
yspate[y]++;
yfata[y]++;
}
fclose(fin);
for(i=0; i<=MAXN; i++){
xspate[i]+=xspate[i-1];
yspate[i]+=yspate[i-1];
}
for(i=0; i<=MAXN; i++){
xspate[i]+=xspate[i-1];
yspate[i]+=yspate[i-1];
}
for(i=MAXN; i>=0; i--){
xfata[i]+=xfata[i+1];
yfata[i]+=yfata[i+1];
}
for(i=MAXN; i>=0; i--){
xfata[i]+=xfata[i+1];
yfata[i]+=yfata[i+1];
}
minx=miny=INF;
for(i=0; i<=MAXN; i++){
if(i+dx<=MAXN+2 && xspate[i-1]+xfata[i+dx+1]<minx)
minx=xspate[i-1]+xfata[i+dx+1];
if(i+dy<=MAXN+2 && yspate[i-1]+yfata[i+dy+1]<miny)
miny=yspate[i-1]+yfata[i+dy+1];
}
fout=fopen("tribute.out", "w");
fprintf(fout, "%d\n", minx+miny);
fclose(fout);
return 0;
}