Cod sursa(job #3212573)
Utilizator | Melvin Abibula MerlinTheWizard | Data | 11 martie 2024 21:53:22 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.65 kb |
#include<bits/stdc++.h>
using namespace std;
const int NMAX = 6e6 + 5, INF = 1e9 + 7;
int n, v[NMAX], max1;
int main()
{
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
cin >> n;
for(int i = 1; i <= n; i++)
cin >> v[i];
int maxst, maxdr, st = 1, suma = -INF;
for(int i = 1; i <= n; i++)
{
suma += v[i];
if(suma > max1)
{
max1 = suma;
maxst = st;
maxdr = i;
}
if(suma < 0)
{
suma = 0;
st = i + 1;
}
}
cout << max1 << " " << maxst << " " << maxdr;
}