Cod sursa(job #3303684)
| Utilizator | Data | 17 iulie 2025 11:09:24 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <bits/stdc++.h>
using namespace std;
const int max_n = 6e6;
int s[max_n+1];
int main()
{
#ifndef LOCAL
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
#endif
int n, x;
int min = 0;
cin >> n;
for(int i = 1; i<= n; i++)
{
cin >> x;
s[i] = s[i-1]+x;
}
int smax = s[1];
int st = 1, dr = 1;
for(int i = 1; i<= n; i++)
{
if(s[i]- s[min] > smax)
{
smax = s[i] - s[min];
st = min+1;
dr = i;
}
if(s[i] < s[min])min = i;
}
cout << smax <<" "<< st <<" "<< dr;
return 0;
}