Mai intai trebuie sa te autentifici.
Cod sursa(job #2324487)
Utilizator | Data | 20 ianuarie 2019 20:51:50 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include <cstdio>
#include <algorithm>
#include <fstream>
using namespace std;
int main(){
ifstream in("ssm.in");
ofstream out("ssm.out");
int n, minsum = 0, minpos = -2, maxsum = -2000000000, maxpos = -1, aux, csum = 0, smaxpos = -1;
in >> n;
for(int i = 1; i <= n; ++i){
in >> aux;
csum += aux;
if(csum - minsum > maxsum){
maxsum = csum - minsum;
maxpos = i;
smaxpos = minpos + 1;
}
if(minsum > csum){
minsum = csum;
minpos = i;
}
}
if(smaxpos == -1)
smaxpos = maxpos;
out << maxsum << " " << smaxpos << " " << maxpos;
return 0;
}