Cod sursa(job #2484116)

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

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

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

    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;
}