Cod sursa(job #2005504)

Utilizator SCatalinStanciu Catalin SCatalin Data 27 iulie 2017 12:23:57
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <iostream>

using namespace std;

ifstream in("ssm.in");
ofstream out("ssm.out");

int v[6000005],l[6000005];

int main()
{
    int n,i,Max,poz1,poz2;
    in >> n;
    for (i = 0; i<n; i++)
        in >> v[i];
    Max = l[n-1] = v[n-1];
    poz1 = poz2 = n-1;
    for (i = n-2; i>=0; i--)
    {
        l[i] = max(v[i],v[i]+l[i+1]);
        if (l[i]>Max)
            Max = l[i];
    }
    for (i = 0; i<n; i++)
        if (l[i] == Max)
        {
            poz1 = poz2 = i;
            while (l[poz2]-v[poz2] == l[poz2+1])
                poz2++;
            break;
        }
    out << Max << " " << poz1+1 << " " << poz2+1;
}