Cod sursa(job #3208324)

Utilizator AlexInfoIordachioaiei Alex AlexInfo Data 28 februarie 2024 11:53:51
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 6e6+5;

int n, x, s[2], maxi, inds, indf;
pair<int, int> smin[2];

int main()
{
    in>>n;
    for (int i=1; i<=n; i++)
    {
        in>>x; //s[0] smin[0] -> sumele precedente (i-1)
        s[1]=s[0]+v[i];
        if (s[1]<smin[0].first)
            smin[1].first = s[1], smin[1].second = i;
        else smin[1].first = smin[0].first, smin[1].second = smin[0].second;
         //suma minima dintre sumele de la 1 la 2, 3, ..., i

        if (s[1]-smin[1].first>maxi)
            maxi = s[1]-smin[1].first, inds = smin[1].second+1, indf = i;

        s[0] = s[1];
        smin[0] = smin[1];
    }
    out<<maxi<<' '<<inds<<' '<<indf;


}