Cod sursa(job #377063)

Utilizator alexandru92alexandru alexandru92 Data 23 decembrie 2009 12:47:10
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
/* 
 * File:   main.cpp
 * Author: virtualdemon
 *
 * Created on December 23, 2009, 12:32 PM
 */
#include <fstream>

/*
 * 
 */
using namespace std;
int main()
{int n, x, xneg, S, SMax, start=1, end=1, st=1, length=1, p, i;
    ifstream in("ssm.in");
    in>>n>>x;
    xneg=S=SMax=x;
    for( n-=1, i=2; i <= n; ++i )
    {
        in>>x;
        if( x < 0 && xneg < x )
            xneg=x, p=i;
        if( S < 0 ) //de aici incepe un nou sir
            start=i, S=x;
        else {
                S+=x;
                if( S > SMax )
                    SMax=S, st=start, end=i, length=end-start+1;
             }
    }
    ofstream out("ssm.out");
    if( xneg > SMax )
        out<<xneg<<' '<<p<<' '<<p<<" 1";
    else out<<SMax<<' '<<(st)<<' '<<(end);
    return 0;
}