Cod sursa(job #1968630)
| Utilizator | Data | 17 aprilie 2017 19:33:46 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <cstdio>
using namespace std;
int st,dr,s[6000003],n;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);
long long sum,bestsum=-2e9,mic=0,idx;
for(int i=1;i<=n;++i) scanf("%d",&s[i]);
for(int i=1;i<=n;++i)
{
s[i]=s[i]+s[i-1];
if(bestsum<s[i]-mic) bestsum=s[i]-mic,st= idx+1,dr=i;
if(mic>s[i]) mic=s[i],idx=i;
}
printf("%lld %d %d",bestsum,st,dr);
return 0;
}
