Pagini recente » Cod sursa (job #2301744) | Cod sursa (job #132544) | Cod sursa (job #2985744) | Cod sursa (job #794798) | Cod sursa (job #477047)
Cod sursa(job #477047)
#include <stdio.h>
#define Nmax 50002
#define INF 2147000000
#define D 50000
int cate[Nmax],cost[Nmax],cost2[Nmax],app[2][Nmax];
int n;
inline int Minim(int x,int y){ return x<y ? x:y; }
int main(){
int i,k,x,y,d[2],min[2];
freopen("tribute.in","r",stdin);
freopen("tribute.out","w",stdout);
scanf("%d%d%d",&n,&d[0],&d[1]);
min[0]=min[1]=INF;
for(i=1;i<=n;++i){
scanf("%d%d",&x,&y);
app[0][x]++; app[1][y]++;
}
for(k=0; k<2; ++k){
for(i=0;i<=D;++i){
cate[i]=cate[i-1]+app[k][i];
cost[i]=cost[i-1]+cate[i-1];
}
for(i=D;i>=0;--i){
cate[i]=cate[i+1]+app[k][i];
cost2[i]=cost2[i+1]+cate[i+1];
}
for(i=0; i+d[k] <= D; ++i)
min[k] = Minim(min[k], cost[i] + cost2[i+d[k]]);
}
printf("%d\n",min[0]+min[1]);
fclose(stdin); fclose(stdout);
return 0;
}