C語言源碼: [cpp] #include<stdio.h> #define maxsize 100010 int a[maxsize]; int main() { int sum,min,n,i,m,j; scanf("%d %d",&n,&m); min=-1; sum=0; for(i=1;i<=n;i++) scanf("%d",&a[i]); i=1;j=1;sum=a[1]; while(j<=n) { if(sum<m) sum+=a[++j]; else if(sum==m) { min=m; break; } else { if(min==-1) min=sum; else if(sum-m<min-m) min=sum; sum-=a[i++]; if(i>j) { j=i; sum=a[i]; } } } i=1;j=1;sum=a[1]; while(j<=n) { if(sum==min) { printf("%d-%d\n",i,j); sum-=a[i++]; sum+=a[++j]; } else { if(sum<min) sum+=a[++j]; else sum-=a[i++]; } if(i>j) { j=i; sum=a[i]; } } return 0; }