Cod sursa(job #2484108)

Utilizator amalia.gemanGeman Aamalia amalia.geman Data 30 octombrie 2019 18:04:17
Problema Subsecventa de suma maxima Scor 75
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#define N 6000001
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int v[N],sum[N],lg[N];///poz-lg secventei
int n;
int main()
{
    int i,j,pozi,pozf,summax;

    fin>>n;
    for(i=1; i<=n; i++)
        fin>>v[i];

    sum[1]=v[1]; lg[1]=1; summax=sum[1];

    for(i=2;i<=n;i++)
    {
        if(sum[i-1]>0)
            {sum[i]=sum[i-1]+v[i];
             lg[i]=lg[i-1]+1;
            }
        else if(sum[i-1]<0)
        {
            sum[i]=v[i];
            lg[i]=1;
        }

        else if(sum[i-1]==0)
        {
            sum[i]=v[i];
            lg[i]=lg[i-1]+1;
        }
    }

    for(i=1;i<=n;i++)
    if(sum[i]>summax) {summax=sum[i]; pozf=i;}

    pozi=pozf-lg[pozf]+1;

    fout<<summax<<" "<<pozi<<" "<<pozf;

    return 0;
}