Cod sursa(job #1863119)
| Utilizator | Data | 30 ianuarie 2017 18:30:30 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <bits/stdc++.h>
#define DM 6000001
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int v[DM],s[DM],n,st,dr;
int main()
{
fin>>n;
for(int i=1;i<=n;++i)
{
fin>>v[i];
s[i]=s[i-1]+v[i];
}
int minim=s[0],maxim=INT_MIN;
for(int i=1;i<=n;++i)
{
if(s[i-1]<s[i]) dr=i,maxim=s[i]-s[st];
if(s[i]<s[st]) st=i;
}
fout<<maxim<<" "<<st+1<<" "<<dr;
return 0;
}
