Cod sursa(job #2309586)

Utilizator TeodoraMiuTeodora Miu TeodoraMiu Data 29 decembrie 2018 13:17:32
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
//#include <stdio.h>
//#include <bits/stdc++.h>
#include <fstream>
using namespace std;
int main()
{
    //FILE*fin=fopen("ssm.in","r");
    //FILE*fout=fopen("ssm.out","w");
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    long n,x,s=-1,i1,i2,maxx,maxi1,maxi2,i;
    //fscanf(fin,"%ld",&n);
    //fscanf(fin,"%ld",&x);
    fin>>n;
    fin>>x;
    maxx=x;
    maxi1=1;
    maxi2=1; //daca e primul element, trebuie initializat maximul cu acel element
    s=x;
    i1=1;
    i2=1;
    for (i=1; i<n; i++)
    {
        //fscanf(fin,"%ld",&x);
        fin>>x;
        if (s<0)
        {
            s=x;
            i1=i+1;
            i2=i+1;
        }
        else
        {
            s+=x;
            i2=i+1;
        }
        if (maxx<s)
        {
            maxx=s;
            maxi1=i1;
            maxi2=i2;
        }
    }
    //fprintf(fout,"%ld %ld %ld",maxx,maxi1,maxi2);
    fout<<maxx<<" "<<maxi1<<" "<<maxi2;
    fin.close();
    fout.close();
    return 0;
}