Cod sursa(job #1573167)

Utilizator Ada45Alexandra Udrescu Ada45 Data 19 ianuarie 2016 14:30:58
Problema Subsecventa de suma maxima Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int a[6000002],v[6000001];
int main()
{
    int n,ok,x,i,max,p1,p2;
    cin>>n;
    a[0]=0;
    ok=0;
    for(i=1;i<=n;i++)
        {
            cin>>x;
            v[i]=x;
            if(x>=0)
                ok=1;
            a[i]=a[i-1]+x;
            if(a[i]<0)
                a[i]=0;
        }
    if(ok==1)
    {
        max=a[1];
        a[n+1]=0;
        for(i=1;i<=n+1;i++)
            if(a[i]==0)
                p1=i+1;
            else
            if(a[i]>max)
                {
                    max=a[i];
                    p2=i;
                }
        cout<<max<<" "<<p1<<' '<<p2;
    }
    else
    {
        max=v[1];
        for(i=2;i<=n;i++)
        if(v[i]>max)
            {
            max=v[i];
            p1=i;}
        cout<<max<<' '<<p1<<' '<<p1;
    }
}