Cod sursa(job #1416076)

Utilizator PaulDurlaAndronie safafasafs PaulDurla Data 7 aprilie 2015 11:42:40
Problema Subsecventa de suma maxima Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <fstream>
#include <iostream>
//#include <cstring>

#define dimmax 1000

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

int main()
{
    int n;
    int a[dimmax],best[dimmax],bestSum=0,i=0;
    int pozibestSum,pozsbestSum;
    fin>>n;
    //memset(best,0,sizeof(best));
    //memset(a,0,sizeof(a));
    fin>>a[0];
    best[0]=a[0];
    bestSum=best[0];
    pozibestSum=0;pozsbestSum=0;
    //fout<<best[i]<<' ';
    for(i=1;i<n;i++)
    {
        fin>>a[i];
        best[i]=a[i];
        if (best[i]<best[i-1]+a[i])
        {
            best[i]=best[i-1]+a[i];
 //           fout<<best[i]<<' ';
        }
        if (bestSum<best[i])
        {
            bestSum=best[i];
            pozsbestSum=i;
            if(best[i-1]<0)
            {
                pozibestSum=i;
            }
        }

    }
    fout<<'\n'<<bestSum<<' '<<pozibestSum+1<<' '<<pozsbestSum+1;
    fin.close(); fout.close();
    return 0;
}