Cod sursa(job #1065087)

Utilizator SagunistuStrimbu Alexandru Sagunistu Data 22 decembrie 2013 19:09:53
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <climits>

using namespace std;

int a[6000010];

int main()
{
    ifstream fin("buline.in");
    ofstream fout("ssm.out");
    int n,i,x,y,s=0,p,l=0,smax=INT_MIN,pmax=0,lmax;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>x;
        //if(y==0)
            //a[i]=a[i+n]=-x;
        //else
            a[i]=a[i+n]=x;
    }
    p=1;
    for(i=1;i<=n;i++)
    {
        s+=a[i];
        l++;
        if(s>smax)
        {
            if(l+p-1>n+p-1)
                break;
            smax=s;
            pmax=p;
            lmax=l;
        }
        if(s<0)
        {
            if(i>n)
                break;
            p=i+1;
            l=0;
            s=0;
        }
    }
    fout<<smax<<" "<<pmax<<" "<<pmax+lmax-1;
    return 0;
}