Cod sursa(job #1652068)
Utilizator | Avram Andrei Marius Avramus | Data | 14 martie 2016 16:30:33 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n, v[6000005];
void generare() {
int start, end, maxim = -2000000000, sum = 0,left=1;
for (int i = 1; i <= n; i++) {
if (sum < 0) {
sum = v[i];
left = i;
}
else {
sum += v[i];
}
if (sum > maxim) {
start = left;
end = i;
maxim = sum;
}
}
fout << maxim << " " << start << " " << end;
}
int main() {
fin >> n;
for (int i = 1; i <= n; i++)
fin >> v[i];
generare();
return 0;
}