Cod sursa(job #2539172)
Utilizator | scarlat marius marius004 | Data | 5 februarie 2020 18:38:10 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
std::ifstream f("ssm.in");
std::ofstream g("ssm.out");
const long long NMAX = 6'000'005;
const long long INF = (1LL << 60);
long long n,v[NMAX],maxx = -INF;
int main(){
f >> n;
for(int i = 1;i <= n;++i)
f >> v[i];
long long s = v[1];
long long start = 1;
long long end = 1;
for(int i = 2;i <= n;++i){
s += v[i];
if(s < 0){
start = i + 1;
s = 0;
}
if(s > maxx){
maxx = s;
end = i;
}
}
g << maxx << ' ' << start << ' ' << end;
return 0;
}