Cod sursa(job #2195620)

Utilizator richard26Francu Richard richard26 Data 16 aprilie 2018 21:15:26
Problema Subsecventa de suma maxima Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>

#include<fstream>
using namespace std;
const int N=-2000000000 ;
ifstream f("ssm.in") ;
ofstream g("ssm.out") ;

long long v[6000001],s[6000001],mini[6000001],ind[6000001] ;
int main()
{
    int n,i,maxi=N,poz1,poz2 ;
    f>>n ;
    for(i=1;i<=n;i++) f>>v[i] ;
    s[1]=v[1] ;
    mini[1]=0 ;
    ind[1]=1 ;
    for(i=2;i<=n;i++)
    {
        s[i]=s[i-1]+v[i] ;
        if(s[i]<=mini[i-1]){
                            mini[i]=s[i] ;
                            ind[i]=i ;

                             }
                else {
                     mini[i]=mini[i-1] ;
                     ind[i]=ind[i-1] ;
                }
    }
    for(i=1;i<=n;i++) if(s[i]-mini[i]>maxi){
                                            maxi=s[i]-mini[i] ;
                                            poz1=ind[i]+1 ;
                                            poz2=i ;
                                             }
    g<<maxi<<" "<<poz1<<" "<<poz2 ;


}