Cod sursa(job #1998383)

Utilizator passwordCiaciru Ana Maria password Data 7 iulie 2017 17:37:23
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
#define nmax 6000005
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n,a[nmax];
int s[nmax];
int lg[nmax];

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

void pd()
{int i;
 s[1]=a[1]; lg[1]=1;
 for(i=2;i<=n;i++)
    if(s[i-1]+a[i]>a[i])
      {s[i]=s[i-1]+a[i];
       lg[i]=lg[i-1]+1;}
    else
      {s[i]=a[i]; lg[i]=1;}
}


void Solve()
{int i,imax,smax;
 smax=a[1]; imax=1;
 for(i=2;i<=n;i++)
    if(s[i]>smax)
     {smax=s[i]; imax=i;}
 fout<<smax<<" "<<imax-lg[imax]+1<<" "<<imax<<endl;
}

int main()
{Read();
 pd();
 Solve();
 return 0;
}