Mai intai trebuie sa te autentifici.
Cod sursa(job #2607871)
| Utilizator | Data | 30 aprilie 2020 12:27:27 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 1.02 kb |
#include <iostream>
#include <fstream>
#define lll long long
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int main()
{
lll x;
lll n , i;
f>>n;
f>>x;
lll prim_final = 1 ;
lll ultim_final = 1 ;
lll suma_curenta = x;
lll suma_trecuta = x;
lll maxim = -1e16;
lll prim = 1;
lll ultim = 1;
lll k = 1;
n -- ;
while(n)
{
f>>x;
k++;
suma_curenta = x + suma_trecuta;
if( x > suma_curenta )
{
prim = k;
ultim = k;
suma_trecuta = x;
if( x > maxim)
maxim = x;
}
else if(x <= suma_curenta)
{
suma_trecuta = suma_curenta;
if( suma_curenta > maxim )
{
prim_final = prim ;
maxim = suma_curenta;
ultim = k;
}
}
n--;
}
cout <<maxim<<" "<<prim_final <<" "<<ultim;
return 0;
}
