Cod sursa(job #1765105)

Utilizator andreistanStan Andrei andreistan Data 26 septembrie 2016 12:27:06
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;

ifstream f("ssm.in");
ofstream g("ssm.out");

const int NMAX=6000001;

int sum[NMAX],N,maxx=INT_MIN,minn=INT_MAX;

int main()
{
    f>>N;
    int i,x,p,u,ssm;
    for(i=1; i<=N; i++)
    {
        f>>x;
        sum[i]=sum[i-1]+x;
        if(maxx<sum[i])
        {
            maxx=sum[i];
            u=i;
        }

    }
    for(i=1; i<u; i++)
        if(minn>sum[i])
        {
            minn=sum[i];
            p=i;
        }
    if(maxx<0)
    {
        for(i=1; i<=N; i++)
        {
            int dif=sum[i]-sum[i-1];
            if(maxx<dif)
            {
                maxx=dif;
                u=i;
                p=i-1;
            }
        }
    }
    ssm=sum[u]-sum[p];
    g<<ssm<<' '<<p+1<<' '<<u;
    return 0;
}