Cod sursa(job #3249876)
| Utilizator | Data | 18 octombrie 2024 17:15:56 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.69 kb |
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main()
{
ifstream input ("ssm.in");
ofstream output ("ssm.out");
int n;
input>>n;
vector<int> tomb(n);
for (int i=0; i<n; i++)
input>>tomb[i];
vector<int> s(n);
s[0]=tomb[0];
int beg_index=0, end_index=0, s_max=0;
for (int i=1; i<n; i++){
s[i]=max(s[i-1]+tomb[i],tomb[i]);
if (s[i]>s_max){
if (s[i]==tomb[i]){
beg_index=i;
end_index=i;
}
else
end_index=i;
}
}
output<<s_max<<" "<<beg_index<<" "<<end_index;
return 0;
}
