Cod sursa(job #2000176)

Utilizator victorv88Veltan Victor victorv88 Data 12 iulie 2017 19:35:04
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int poz1, poz2, s[6000005], n, x, sum, smax=-(1<<31), mini=99999, loc, a[6000005];

void sume()
{
    sum=0;
    for (int i=0; i<n; i++)
    {
        f >> a[i];
        sum+=a[i];
        s[i]=sum;
        if (s[i]<mini)
            mini=s[i], loc=i;
    }
    for (int i=0; i<n; i++)
    {
        if (mini!=sum)
        {
            if (s[i]-mini>smax)
            {
                smax=s[i]-mini;
                poz1=loc+2;
                poz2=i+1;
            }
        }
        else
        {
            if(a[i]>smax)
            {
                smax=a[i];
                poz1=i+1;
                poz2=i+1;

            }
        }
    }
    g << smax <<' ' <<poz1 <<' ' <<poz2;


}

int main()
{
    f>> n;
    sume();
    return 0;
}