Cod sursa(job #3285877)
| Utilizator | Data | 13 martie 2025 15:36:01 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int main()
{
int n;
cin>>n;
vector<int> v(n);
for (int i=0; i<n; i++)
cin>>v[i];
int curr_sum=v[0], max_sum=v[0], start=0, end=0, s=0;
for (int i=1; i<n; i++)
{
if (v[i]>curr_sum+v[i])
{
curr_sum = v[i];
s=i;
} else curr_sum += v[i];
if (curr_sum > max_sum)
{
max_sum=curr_sum;
start=s;
end=i;
}
}
cout<<max_sum<<' '<<start+1<< ' ' <<end+1<<'\n';
return 0;
}
