题意:跟题目一样,求和为k的连续区间。
题记:计算前缀和,然后枚举求出答案。
#include<iostream> #include<cstring> #include<algorithm> #include<cstdio> using namespace std; typedef long long ll; const int N=1e4+10; //int num[10]={6,2,5,5,4,5,6,3,7,6}; ll a[N]; int main(){ ll n,k; scanf("%lld%lld",&n,&k); a[0]=0; for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); a[i]=a[i-1]+a[i]; } for(int i=0;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(a[j]-a[i]==k){ cout<<i+1<<' '<<j<<endl; return 0; } } } cout<<"No Solution"<<endl; return 0; }
