Cod sursa(job #2847950)

Utilizator moise22Moise Rares Andrei moise22 Data 11 februarie 2022 20:54:53
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;
 int v[6000001];
int main()
{
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    int n,s=0,x,ymaxx;
    fin >> n;
    for(int i=1; i<=n; i++)
    {
        fin >> v[i];
    }
    int maxx=v[1];
    x=1;

    int y=1;
    ymaxx=1;
    int xmaxx=1;
    for(int j=1; j<=n; j++)
    {
        y=j;
        if(s<0)
        {
            s=0;
            x=y;
        }
        s+=v[j];
        if(maxx<s)
        {
            maxx=s;
            ymaxx=y;
            xmaxx=x;
        }
        if(s==maxx)
        {
            if(y-x>ymaxx-xmaxx)
            {
                xmaxx=x;
                ymaxx=y;
            }
        }
    }
    fout << maxx << " " <<  xmaxx << " "  <<  ymaxx;

    return 0;
}