Pagini recente » Cod sursa (job #712725) | Cod sursa (job #1213937) | Cod sursa (job #1029498) | Cod sursa (job #2141377) | Cod sursa (job #87621)
Cod sursa(job #87621)
using namespace std;
#include <map>
#include <cstdio>
#define maxn 50001
map<int, int> a;
int n, K, x[maxn];
int s[maxn];
void read()
{
freopen("secv2.in","r",stdin);
scanf("%d %d\n", &n, &K);
int i;
for(i=1;i<=n;++i)scanf("%d ", x+i);
}
void solve()
{
int i;
s[1]=x[1];
for(i=2;i<=n;++i) s[i]=s[i-1]+x[i];
a[s[1]]=1;
map<int, int>::iterator it;
for(i=2;i<K;++i)
if(!a[s[i]]) a[s[i]]=i;
int p=0, q=0,max=-0x3f3f3f3f;
for(i=K;i<=n;++i)
{
for(it=a.begin();it!=a.end();++it)
if(i-it->second>=K) break;
if(s[i]-s[it->second]>max)
{
p=it->second;
q=i;
max=s[i]-s[it->second];
}
if(!a[s[i]]) a[s[i]]=i;
}
freopen("secv2.out","w",stdout);
printf("%d %d %d\n", p+1, q, max);
}
int main()
{
read();
solve();
return 0;
}