Cod sursa(job #554083)

Utilizator blustudioPaul Herman blustudio Data 14 martie 2011 16:43:10
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
using namespace std;
//Subsir de suma maxima
    unsigned long int n;
    unsigned long int ib = 0;
    unsigned long int ie = 0;
    long int sum = 0;
    long int nr[6000000] = {0};
    long int x;
    long int minim = 0;
    long int imin = 0;
int main()
{
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    fin >> n;
    fin >> nr[0];
    for(int i=1; i<n; i++)
    {
        fin >> x;
        nr[i] = nr[i-1] + x;
    }
    for(int i=0; i<n; i++)
    {
        if(nr[i]-minim > sum)
        {
            sum = nr[i]-minim;
            ib = imin+1;
            ie = i;
        }
        if(nr[i] < minim)
        {
            minim = nr[i];
            imin = i;
        }
    }
    fout << sum << " " << ib+1 << " " << ie+1;
    fin.close();
    fout.close();
    return 0;
}