Cod sursa(job #1559194)

Utilizator jordasIordache Andrei Alexandru jordas Data 30 decembrie 2015 14:10:08
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#define nMax 6000000
#include <fstream>

using namespace std;

 ifstream x ("ssm.in");
 ofstream y ("ssm.out");

 int n;
 int A[nMax],S[nMax];
 bool change[nMax];

int main()
{
    x>>n;

    int i;

    for(i=0;i<n;i++)
        x>>A[i];

    S[0]=A[0];

    for(i=1;i<n;i++)
        if(S[i-1]+A[i]>=A[i])
            S[i]=S[i-1]+A[i];
        else
        {
            S[i]=A[i];
            change[i]=true;
        }

    int maxx=S[0],j;

    for(i=1;i<n;i++)
        if(maxx<S[i])
        {
            maxx=S[i];
            j=i;
        }

    for(i=j;i>=0;i--)
        if(change[i])
            break;

    y<<maxx<<" "<<i+1<<" "<<j+1<<"\n";

    return 0;
}