Cod sursa(job #1596907)

Utilizator dragos231456Neghina Dragos dragos231456 Data 11 februarie 2016 15:02:49
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int n,a,mx=0,lt=1,rt=0,s1=0,lt1=1;
    long long x=0;
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    f>>n;
    int s=0;
    bool t=true;
    for(int i=1; i<=n; ++i)
    {
        f>>a;
        s+=a;
        s1+=a;
        x+=a;
        if(s>mx)
        {
            mx=s;
            s1=0;
            t=false;
            if(t) lt=rt-1;
            rt=i;
        }
        else if(s1>0)
        {
            if(!t) {mx+=s1;lt=rt-1;}
            else mx+=a;
            t=true;
            rt=i;
        }
        if(a<0)
        {
            s=0;
        }
        if(mx!=x) lt1=lt;
    }
    g<<mx<<" "<<lt1<<" "<<rt;
}