Pagini recente » Cod sursa (job #68250) | Cod sursa (job #250418) | Cod sursa (job #482454) | Cod sursa (job #1504483) | Cod sursa (job #1622723)
# include <fstream>
# define DIM 50010
using namespace std;
int x[DIM], y[DIM], val, nrx, nry, i, x1, y1, n, dx, dy, xs[DIM], ys[DIM], xd[DIM], yd[DIM], minim1, minim2, maxx, maxy, minx, miny;
int main()
{
ifstream fin("tribute.in");
ofstream fout("tribute.out");
fin>>n>>dx>>dy;
minim2=minim1=minx=miny=DIM;
for(i=1;i<=n;i++){
fin>>x1>>y1;
x[x1]++;
y[y1]++;
if(x1>maxx)
maxx=x1;
if(y1>maxy)
maxy=y1;
if(x1<minx)
minx=x1;
if(y1<miny)
miny=y1;
}
nrx=x[minx];
xs[minx]=nrx;
for(i=minx+1;i<=maxx;i++){
xs[i]=xs[i-1]+nrx;
if(x[i]!=0)
nrx+=x[i];
}
nrx=x[maxx];
xd[maxx]=nrx;
for(i=maxx-1;i>=minx;i--){
xd[i]=xd[i-1]+nrx;
if(x[i]!=0)
nrx+=x[i];
}
nry=y[miny];
ys[miny]=nry;
for(i=miny+1;i<=maxy;i++){
ys[i]=ys[i-1]+nry;
if(y[i]!=0)
nry+=y[i];
}
nry=y[maxy];
yd[miny]=nry;
for(i=maxy-1;i>=miny;i--){
yd[i]=yd[i-1]+nry;
if(y[i]!=0)
nry+=y[i];
}
for(i=minx;i<=maxx-dx+1;i++){
val=xs[i]+xd[i+dx-1];
if(val<minim1)
minim1=val;
}
for(i=miny;i<=maxy-dy+1;i++){
val=ys[i]+yd[i+dy-1];
if(val<minim2)
minim2=val;
}
fout<<minim1+minim2<<"\n";
return 0;
}