Pagini recente » Cod sursa (job #3186136) | Cod sursa (job #2600265) | Cod sursa (job #1954259) | Cod sursa (job #1790633) | Cod sursa (job #984838)
Cod sursa(job #984838)
#include <cstdio>
#include <iostream>
#include <climits>
using namespace std;
int n, i, in, sf, start, sum_temp, Smax, MAX, v[6000002];
bool sw;
int main()
{
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
MAX=INT_MIN;
scanf("%d", &n);
for(i=1;i<=n;i++)
{
scanf("%d", &v[i]);
if(v[i]>0)
sw=1;
if(v[i]>MAX)
MAX=v[i], in=sf=i;
}
if(!sw)
{
for(i=1;i<=n;i++)
if(v[i]>MAX)
MAX=v[i], in=sf=i;
}
if(sw)
{
for(i=1;i<=n;i++)
{
sum_temp+=v[i];
if(sum_temp>=Smax)
{
Smax=sum_temp;
in=start;
sf=i;
}
else if(sum_temp<0)
{
start=i+1;
sum_temp=0;
}
}
printf("%d %d %d\n", Smax, in, sf);
}
else printf("%d %d %d\n", MAX, in, sf);
return 0;
}