Cod sursa(job #854074)

Utilizator ilenitudorIleni Tudor ilenitudor Data 12 ianuarie 2013 19:20:19
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
using namespace std;

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

int a[6000003],besti,s[6000003];
long int n,bestsum,ifin,is;
void Read()
{
    fin>>n;
    for(int i=1 ; i<=n ; i++)
    fin>>a[i];
}
void construct()
{
    besti = a[1];
    for(int i=2 ; i <=n ; i++)
    {

        if(besti + a[i] > a[i])
        besti = a[i] + besti;
        else
            besti = a[i];

        if(bestsum < besti)
       {
        bestsum = besti;
        ifin = i;
       }
    }
}
void cautamis()
{
    is=ifin;
    int s=bestsum;
    while(s)
    {

        s-=a[is];
        is--;
    }
    is+=1;
}
int main()
{
    Read();
    construct();
    cautamis();
    fout<<bestsum<<" "<<is<<" "<<ifin;

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