Cod sursa(job #3325759)
| Utilizator | Data | 26 noiembrie 2025 13:02:37 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
using namespace std;
int main(){
int n, i, x, sum, st, max_sum, r_st, r_dr;
ifstream fin( "ssm.in" );
ofstream fout( "ssm.out" );
fin >> n;
sum = st = 0;
max_sum = r_st = r_dr = -1;
for( i = 0; i < n; i++ ){
fin >> x;
sum += x;
if( sum > max_sum || ( sum == max_sum && st < r_st ) ){
max_sum = sum;
r_st = st;
r_dr = i;
}
if( sum < 0 ){
sum = 0;
st = i + 1;
}
}
fout << max_sum << ' ' << r_st + 1 << ' ' << r_dr + 1;
return 0;
}