Cod sursa(job #2731235)

Utilizator VladPislaruPislaru Vlad Rares VladPislaru Data 27 martie 2021 16:20:54
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
#define oo 1000000000
using namespace std;

ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n, s[6000005],  a[6000005];

int main()
{
    int i, x, minim,indminim,summax = -oo,p1,p2, v;
    fin >> n;
    fin >> s[1];
    v = 0;
    for (i = 2; i <= n; i++)
    {
        fin >> x;
        s[i] = s[i - 1] + x;
        if (x > 0)
            v = 1;
    }
    minim = 0;
    indminim = 1;
    p1 = p2 = 0;
    for (i = 1; i <= n; i++)
    {
        a[i] = s[i] - minim;
        if (minim > s[i])
        {
            minim = s[i];
            indminim = i;
        }
        if (summax < a[i])
        {
            summax = a[i];
            p1 = indminim + v;
            p2 = i;
        }
    }
    fout << summax << " " << p1 << " " << p2 << "\n";
    return 0;
}