Cod sursa(job #2964284)

Utilizator Ruxandra009Ruxandra Vasilescu Ruxandra009 Data 12 ianuarie 2023 19:17:43
Problema Subsecventa de suma maxima Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
const long long NrMax = 6000005;
const long long NR = 2000000005;
long long n, x, s, Min, Max, p1, p2, mini[NrMax], maxi[NrMax];
int main()
{
    f >> n;
    mini[0] = NR;
    for(long long i = 1; i <= n; i ++)
    {
        f >> x;
        s += x;
        mini[i] = min(mini[i - 1], s);
        maxi[i] = max(maxi[i - 1], s);
    }

    Min = mini[1]; p1 = 1;
    for(long long i = 2; i <= n; i ++)
        if(Min > mini[i])
        {
            Min = mini[i];
            p1 = i + 1;
        }

    for(long long i = p1; i <= n; i ++)
        if(Max < maxi[i])
        {
            Max = maxi[i];
            p2 = i;
        }

    g << Max - Min << " " << p1 << " " << p2;
    return 0;
}