Cod sursa(job #3275196)
| Utilizator | Data | 9 februarie 2025 13:56:49 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.71 kb |
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int INF = 1e9;
void solve(){
int n, x;
int len = 0, res_len = 0, dr;
int max_ending = -INF;
int res = -INF;
fin >> n;
for(int i = 1; i <= n; ++i){
fin >> x;
if(max_ending + x < x){
len = 1;
max_ending = x;
}
else{
len ++;
max_ending = max_ending + x;
}
if(res < max_ending){
res = max_ending;
dr = i;
res_len = len;
}
}
fout << res << " " << dr - len + 2 << " " << dr;
}
int main()
{
solve();
return 0;
}
