Cod sursa(job #2636475)

Utilizator VladutzPredoiVlad Predoi VladutzPredoi Data 18 iulie 2020 12:17:09
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;


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


int n,v[6000005];
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
    }

    int i1=1;
    int i2=1;
    int x1=i1;
    int x2=i2;
    int s=v[1];
    int smax=s;
    if(s<0)
    {
        while(v[i1]<0)
        {
            i1++;
            i2++;
        }
        s=v[i1];
        smax=s;
        x1=i1;
        x2=i2;
    }
    while(i2<=n)
    {
        i2++;
        s+=v[i2];
        if(s>smax)
        {
            smax=s;
            x1=i1;
            x2=i2;
        }
        if(s<0)
        {
            i1=i2+1;
            i2=i1;
            s=v[i1];
        }
    }
    fout<<smax<<" "<<x1<<" "<<x2;
    return 0;
}