Cod sursa(job #2031813)

Utilizator ApolodorTudor Fernea Apolodor Data 3 octombrie 2017 20:49:43
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;

int n,i,answer,ansleft=1,ansright=1,sum,lleft;
int a[6000002];
ifstream fi("ssm.in");
ofstream fo("ssm.out");

int main()
{
    fi>>n;
    for(i=1;i<=n;i++)
        fi>>a[i];
    answer=a[1];
    sum=max(a[i],0);
    if(a[1]<0)
        lleft=2;
    else
        lleft=1;
    for(i=2;i<=n;i++)
    {
        sum=sum+a[i];
        if(sum>answer)
        {
            answer=sum;
            ansleft=lleft;
            ansright=i;
        }
        if(sum<0)
        {
           lleft=i+1;
            sum=0;
        }
    }
    fo<<answer<<" "<<ansleft<<" "<<ansright;
}