母函数
#include<stdio.h> #include<string.h> int c1[200],c2[200]; int a[200],b[200]; int main() { int i,j,k,n,m; while(scanf("%d %d",&n,&m)!=EOF) { for(i=0;i<n;i++) scanf("%d %d",&a[i],&b[i]); memset(c1,0,sizeof(c1)); memset(c2,0,sizeof(c2)); for(i=a[0];i<=b[0];i++) c1[i]=1; for(i=2;i<=n;i++) { for(j=0;j<=m;j++) for(k=a[i-1];k+j<=m&&k<=b[i-1];k++) c2[j+k]+=c1[j]; for(j=0;j<=m;j++) { c1[j]=c2[j]; c2[j]=0; } } printf("%d ",c1[m]); } return 0; }