Cod sursa(job #820951)

Utilizator icb_mnStf Cic icb_mn Data 21 noiembrie 2012 14:24:46
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
#define NMAX 6000009
using namespace std;
ifstream f("ssm.in"); ofstream g("ssm.out");
int n, s[NMAX], b[NMAX];
long long INFINIT = 1000000000;
int main()
{
    INFINIT = -INFINIT * INFINIT;
    f>>n;
    int a,st,d,k;
    for(int i = 1; i <= n; ++i) f>>a, s[i] = a + s[i - 1];
    int minim = 0;
    long long maxim = INFINIT;
    for(int i = 1; i <= n; ++i)
    {
        b[i]= minim + s[i];
        if(minim > s[i]) minim = s[i], k = i + 1;
        if(maxim < b[i]) maxim = b[i], st = k, d = i;
    }
    if(st > d) st = d;
    g<<maxim<<' '<<st<<' '<<d<<'\n';
    g.close();
    return 0;
}