第2 - N + 1行:A i (-10^9 <= A i <= 10^9)。
输出2个数i, j,分别是区间的起始和结束位置。如果存在多个,输出i最小的。如果i相等,输出j最小的。
6 10 1 2 3 4 5 6
1 4
#include<stdio.h> #include<string.h> int main() { int n,i,j,k,K; int a[10005]; long long b[10005]; while(~scanf("%d%d",&n,&k)) { K=0; memset(b,0,sizeof(b)); for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) b[i]=b[i-1]+a[i]; for(i=0;i<=n;i++) { for(j=i+1;j<=n;j++) { if(b[j]-b[i]==k) { K=1; printf("%d %d\n",i+1,j); break; } } if(K) break; } if(!K) printf("No Solution\n"); } return 0; }