Cod sursa(job #1074519)
| Utilizator | Data | 7 ianuarie 2014 18:38:28 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.65 kb |
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int s[6000001];
int n,maxx = -999999999,L;
int main()
{
int x;
fin>>n;
fin>>x;
s[1] = x;
for(int i=2 ; i<=n ; i++)
{
fin>>x;
if(s[i-1] + x > x )
{
s[i] = s[i-1]+x;
if(s[i] > maxx)maxx=s[i],L=i;
}
else
{
s[i] = x;
if(s[i] > maxx)maxx=s[i],L=i;
}
}
int j=L-1;
while(s[j] > 0 )
{
j--;
}
j+=1;
fout<<maxx<<" "<<j<<" "<<L;
fin.close();
fout.close();
return 0;
}
