Cod sursa(job #318611)

Utilizator mihai.cuculiciCuculici Mihail mihai.cuculici Data 28 mai 2009 19:47:43
Problema Subsecventa de suma maxima Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
#define NMAX 666013
#define MAX(a, b) ( (a) > (b) ) ? (a) : (b)
using namespace std;

ifstream f ("ssm.in");
ofstream g ("ssm.out");
int s[NMAX], N, i, lo, hi, _index = 0, smax = -NMAX;

void read()
{
     f>>N;
     for(i = 1; i < N; i++) f>>s[i];
}

void solve()
{
     int min = 0;
     for(i = 1; i < N; ++i)
     {
           s[i] += s[i-1];
           if(smax < s[i] - min) smax = s[i] - min, lo = _index + 1, hi = i;
           if(min > s[i]) min = s[i], _index = i;
     }
}

void write()
{
     g<<smax<<" "<<lo<<" "<<hi<<"\n";
}
         
int main()
{
    read();
    solve();
    write();
    return 0;
}