Cod sursa(job #1488005)
Utilizator | Data | 17 septembrie 2015 19:25:17 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.68 kb |
#include <iostream>
#include <cstdio>
#include <climits>
using namespace std;
int n,st=1,dr=0,sbest=INT_MIN,s,drb,stb,x;
void rezolvare()
{
scanf("%d",&n);
for (int i=1;i<=n;++i)
{
scanf("%d",&x);
if (s+x>=x)
{
s+=x;
++dr;
}
else
{
s=x;
dr=i;
st=i;
}
if (s>sbest)
{
sbest=s;
drb=dr;
stb=st;
}
}
}
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
rezolvare();
printf("%d %d %d",sbest,stb,drb);
return 0;
}