Cod sursa(job #640652)

Utilizator vladul2Vlad B vladul2 Data 26 noiembrie 2011 11:33:03
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <stdio.h>
#include <fstream>
using namespace std;

const int nmax=6000001;
int s[nmax],best[nmax],mini[nmax];
int main()
{
int i,n,x=0,xi;
ifstream fin("ssm.in");
freopen("ssm.out","w",stdout);
fin>>n;
for(i=1;i<=n;i++)fin>>s[i];
best[1]=s[1];
mini[1]=1;
    for(i=2;i<=n;i++){
    if(best[i-1]+s[i]>s[i]){
        best[i]=best[i-1]+s[i];
        mini[i] = mini[i - 1];
        }
    else {best[i]=s[i];
            mini[i]=i;}}

for(i=1;i<=n;i++)if(best[i]>x){x=best[i];xi=i;}
cout<<best[xi]<<" "<<mini[xi]<<" "<<xi;

    return 0;
}