Cod sursa(job #1596927)

Utilizator dragos231456Neghina Dragos dragos231456 Data 11 februarie 2016 15:18:09
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 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,s3=0,c;
    bool t=true;
    for(int i=1; i<=n; ++i)
    {
        f>>a;
        s+=a;
        c=s3;
        s1+=a;
        x+=a;
        if(s>mx)
        {
            mx=s;
            s1=0;
            t=false;
            rt=i;
            s3++;
        }
        else if(s1>0)
        {
            if(!t) {mx+=s1;}
            else mx+=a;
            t=true;
            rt=i;
            s3++;
        }
        if(a<0)
        {
            s=0;
            if(s3==c) s3++;
        }
     if(c==s3) s3=0;
     if(s3!=0) lt1=rt-s3+1;
    }

    g<<mx<<" "<<lt1<<" "<<rt;
}