Cod sursa(job #2631376)

Utilizator sireanu_vladSireanu Vlad sireanu_vlad Data 30 iunie 2020 11:09:13
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int main()
{
    int n;
    in >> n;
    int v[n];
    for(int i = 0; i < n; i++)
        in >> v[i];

    int s[n]; s[0] = v[0];
    int maxSum = -2147483647, start, j = 0, stop, minS = s[0];
    for(int i = 1; i < n; i++)
    {
        s[i] = s[i-1] + v[i];
        if(s[i] - minS > maxSum)
        {
            maxSum = s[i] - minS;
            stop = i;
            start = j + 1;
        }
        if(s[i] < minS)
        {
            minS = s[i];
            j = i;
        }
    }

    out << maxSum << " " << start + 1 << " " << stop + 1 << endl;

    return 0;
}