Cod sursa(job #2227210)
| Utilizator | Data | 31 iulie 2018 15:14:45 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include<cstdio>
int main()
{ int n , nr , maxim = -2000000000 , ll , dr;
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);
scanf("%d",&nr);
int sum = nr;
int st = 1;
int len = 1;
for(int i = 2; i <= n ; i ++)
{
if(sum > maxim)
{
maxim = sum;
ll = st;
dr = st + len - 1;
}
scanf("%d",&nr);
if(sum + nr > nr)
{
sum += nr;
len ++;
}
else
{
sum = nr;
st = i;
len = 1;
}
}
if(sum > maxim)
{
maxim = sum;
ll = st;
dr = st + len - 1;
}
printf("%d %d %d",maxim , ll ,dr);
}
