51nod 1094 和为k的连续区间

来源:互联网 发布:多邻国提醒连接网络 编辑:程序博客网 时间:2024/06/06 02:11
#include <bits/stdc++.h>using namespace std;map<long long,long long> mp;long long a[10010],sum[10010];int main(){long long n,k,i,ans1,ans2,flag;while(cin>>n>>k){for(i=1;i<=n;i++)scanf("%lld",&a[i]);sum[0]=0;for(i=1;i<=n;i++)sum[i]=sum[i-1]+a[i];mp.clear();ans1=1<<29;flag=1;for(i=0;i<=n;i++){if(mp[sum[i]-k]&&mp[sum[i]-k]<ans1){ans1=mp[sum[i]-k];ans2=i;flag=0;}if(!mp[sum[i]])mp[sum[i]]=i+1;}if(flag)printf("No Solution\n");elseprintf("%lld %lld",ans1,ans2);}}

0 0