51Nod - 1094 和为k的连续区间(前缀和)

题意:跟题目一样,求和为k的连续区间。

题记:计算前缀和,然后枚举求出答案。

#include
#include
#include
#include
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;
}

你可能感兴趣的:(水题集)