Cod sursa(job #1161362)

Utilizator DysKodeTurturica Razvan DysKode Data 31 martie 2014 10:44:51
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#define MAXSIZE 6000010
using namespace std;

ifstream fin("ssm.in");
ofstream fout("ssm.out");

int v[MAXSIZE],best[MAXSIZE],k,s,maxi,pozi,sol,x,y,n;

void citirea ()
{
    int i;
    fin>>n;
    for(i=1 ; i<=n ; ++i)
        fin>>v[i];
}

void crearea()
{
    int i,a,b;
    for(i=1 ; i<=n ; ++i)
    {
        best[i]=v[i];
        a=i;
        while(best[i]>0 && i<=n)
        {
            ++i;
            best[i]=v[i]+best[i-1];
            b=i;
            if((best[i]>maxi) || (best[i]==maxi && b-a==y-x && v[a]<v[x]) )
            {
                x=a;
                y=b;
                maxi=best[i];
            }
        }
    }
}




int main()
{
    citirea();
    crearea();
    fout<<maxi<<" "<<x<<" "<<y;

fin.close();
fout.close();
return 0;
}