Cod sursa(job #1296749)

Utilizator Corina1997Todoran Ana-Corina Corina1997 Data 21 decembrie 2014 14:46:17
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;

#define INF 0x3f3f3f3f

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

vector<int> a, best;

int n, bestSum = -INF, i1, j1;

int main()
{
    is >> n;
    int k;
    a.resize(n+1);
    best.resize(n+1);
    for ( int i = 1; i <= n; i++ )
        is >> a[i];
    bestSum = a[1];
    k = 1;
    for ( int i = 1; i <= n; ++ i)
    {
        best[i] = a[i];
        if (best[i] < best[i-1] + a[i])
        {
            best[i] = best[i-1] + a[i];
            k++;
        }
        else
            k = 1;
        if (bestSum < best[i])
        {
            bestSum = best[i];
            j1 = i;
            i1 = i - k + 1;
        }
    }
    os << bestSum << ' ' << i1 << ' ' << j1;
    is.close();
    os.close();
    return 0;
}