Cod sursa(job #325767)
Utilizator | Udrescu Cristian udrescu_cristi | Data | 22 iunie 2009 12:54:21 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream>
using namespace std;
#define SMAX 6000000
int v[SMAX], s[SMAX], n;
int main()
{
ifstream f1("ssm.in");
ofstream f2("ssm.out");
int i, bi, bi1, ei = bi = bi1 = 0;
f1 >> n >> v[0];
s[0] = v[0];
for(i = 1; i < n; ++i){
f1 >> v[i];
if(s[i-1] < 0)
s[bi1 = i] = v[i];
else
s[i] = s[i-1] + v[i];
if(s[i] > s[ei])
ei = i, bi = bi1;
}
f2 << s[ei] << " " << bi + 1 << " " << ei + 1;
f2.close( );
return 0;
}