您的位置:首页 > 其它

map优化 区间连续和为k

2016-06-25 17:26 267 查看
废话不多说上代码
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
map<long long ,int>mp;
long long sum[10005];
long long arr[10005];
int main()
{
int n,ans;
cin>>n>>ans;
for(int i=1;i<=n;i++)
{
cin>>arr[i];
sum[i]=arr[i]+sum[i-1];
mp[sum[i]]++;
}
for(int i=0;i<=n;i++)
{
if(mp[sum[i]+ans]>0)
{
for(int j=i+1;j<=n;j++)
if(sum[j]==sum[i]+ans)
{
printf("%d %d",i+1,j);
return 0;
}
}
mp[sum[i]]--;
}
printf("No Solution");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: