母函数。注意水果最小值最大值的选取。
#include "stdio.h"
#include "string.h"
void main(){
int n, m;
int fl[101], fh[101];
int ccc[101], t[101];
int i, j, k;
freopen("in.txt", "r", stdin);
while(scanf("%d %d", &n, &m)!=EOF){
for(i=1; i<=n; i++)
scanf("%d %d", fl+i, fh+i);
memset(ccc, 0, sizeof(ccc));
for(i=fl[1]; i<=fh[1]; i++) ccc[i] = 1;
for(k=2; k<=n; k++){
memset(t, 0, sizeof(t));
for(i=fl[k]; i<=fh[k]; i++){ //下限-上限
if(i>m) break;
for(j=0; j+i<=m; j++)
t[j+i] += ccc[j];
}
for(i=0; i<=m; i++)
ccc[i] = t[i];
}
printf("%d\n", ccc[m]);
}
}