Cod sursa(job #3310511)
| Utilizator | Data | 14 septembrie 2025 14:48:57 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include<iostream>
#include<fstream>
#include<vector>
#include<cstdint>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int main(){
int n, x;
in>>n;
int sum = INT32_MIN;
int m = INT32_MIN;
int left;
int best_left=1, best_right=1;
for(int i =1;i<=n;i++){
in>>x;
if (sum < 0) {
sum = x;
left = i;
} else{
sum += x;
}
if (sum > m) {
m = sum;
best_left = left;
best_right = i;
}
m = max(m, sum);
}
cout<<m<<" "<<best_left<<" "<<best_right;
return 0;
}
