Cod sursa(job #3165184)
| Utilizator | Data | 5 noiembrie 2023 16:50:36 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
long long int suma, sumamax;
int x;
int primul, ultimul, salvare;
int n;
int main()
{
fin >> n;
fin >> suma;
sumamax = suma;
primul = ultimul = 1;
for (int i = 2; i <= n; i++)
{
fin >> x;
if (suma + x > x)
suma += x;
else
{
suma = x;
salvare = i;
}
if (suma > sumamax)
{
sumamax = suma;
primul = salvare;
ultimul = i;
}
}
fout << sumamax << " " << primul << " " << ultimul;
}