Cod sursa(job #3309200)
| Utilizator | Data | 2 septembrie 2025 13:46:52 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 90 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.65 kb |
//var dinamica
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int v[6000003], smax[6000003];
int main(){
int n;
fin >> n;
for (int i = 1; i <= n; i++){
fin >> v[i];
}
int best = 0, st, dr, j=1, x;
for (int i = 1; i <= n; i++){
smax[i] = max(v[i], smax[i - 1] + v[i]);
if (smax[i] == v[i])
x = i;
if (smax[i] >= best){
best = smax[i];
st=x;
dr = i;
}
best = max(best, smax[i]);
}
fout << best << " " << st << " " << dr;
return 0;
}
