Cod sursa(job #1984111)
| Utilizator | Data | 23 mai 2017 18:50:45 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
using namespace std;
ifstream F("ssm.in");
ofstream G("ssm.out");
int n, st, dr, v[6000005], smst, smdr;
int smc, smg; ///suma maxima crescatoare si suma maxima globala
int main()
{
F >> n;
for(int i = 1; i <= n; ++ i)
F >> v[i];
smg = v[1];
smc = v[1];
st = dr = smst = smst = 1;
for(int i = 2; i <= n; ++ i)
{
if(smc < 0)
smc = v[i], st = i;
else
smc += v[i], dr = i;
if(smc > smg)
smg = smc, smst = st, smdr = dr;
}
G << smg << " " << smst << " " << smdr;
return 0;
}
