Cod sursa(job #2545098)
| Utilizator | Data | 12 februarie 2020 20:27:06 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 30 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int main()
{
long int n,i,j, mx_val, mx_index;
fin>>n;
long int arr[n], v[n];
for(i=0;i<n;i++)
fin>>arr[i];
v[0] = arr[0];
mx_val = v[0];
mx_index = 0;
for(i=1;i<n;i++)
{
if(arr[i]+v[i-1]<0)
v[i]=arr[i];
else
v[i]=arr[i]+v[i-1];
if (v[i] > mx_val)
{
mx_val = v[i];
mx_index = i;
}
}
for(i=mx_index;i>=0;i--)
if(v[i]<0)
break;
fout<<mx_val<<' '<<i+2<<' '<<mx_index+1;
}
