Cod sursa(job #3265935)

Utilizator maxtraAlex Deonise maxtra Data 4 ianuarie 2025 12:35:24
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
using namespace std;

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

int n, v[6000001], s[6000001];

int main()
{
    fin >> n;
    for (int i = 1; i <= n; i++)
        fin >> v[i];
    s[1] = v[1];
    for (int i = 2; i <= n; i++) {
        if(s[i - 1] + v[i] > v[i])
            s[i] = s[i - 1] + v[i];
        else
            s[i] = v[i];
    }
    int maxi = INT_MIN, i1 = 0, i2 = 0;

    /*for(int i = 1; i <= n; i++)
        cout << s[i] << " " ;
    cout << endl;*/

    for(int i = 1; i <= n; i++)
        if(maxi < s[i])
            maxi = s[i], i2 = i;

    for(int i = i2; i >= 1; i--)
        if(i1 == 0 && s[i] == v[i])
            i1 = i;
    fout << maxi << " " << i1 << " " << i2;
    return 0;
}