Cod sursa(job #3211731)

Utilizator Alex_DeaconuDeaconu Alexandru Alex_Deaconu Data 10 martie 2024 10:38:39
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int dim=6000001;
int a[dim],bst[dim];
int main()
{
    int n,smax,pf,s=0,pi;
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>a[i];
    bst[1]=a[1];
    for(int i=2;i<=n;i++){
        bst[i]=max(bst[i-1]+a[i],a[i]);
    }
    smax=bst[1];
    pf=1;
    for(int i=2;i<=n;i++){
        if(bst[i]>smax)
        {
            smax=bst[i];
            pf=i;
        }
    }
    for(int i=pf;i>=1;i--){
        s=s+a[i];
        if(s==smax)
            pi=i;
    }
    fout<<smax<<' '<<pi<<' '<<pf;
    fin.close();
    fout.close();
    return 0;
}