Cod sursa(job #1377209)

Utilizator Vele_GeorgeVele George Vele_George Data 5 martie 2015 20:45:48
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#define inf (1<<30)
using namespace std;

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

    int mn=0,s=0,mx=-inf,n,st=0,dr=0,p=0,x;

    f >> n;
    for(int i=1; i<=n; i++)
    {
        f >> x;
        s+=x;  // sume partiale
        if (s-mn>mx)
        {
            mx=s-mn;
            dr=i;
            st=p+1;
        }

        if(s-mn==mx)
        {
            if (i-p>dr-st+1)
            {
                dr=i;
                st=p+1;
            }
        }

        if (s<mn)
        {
            mn=s;
            p=i;
        }
    }

    g << mx << " " << st << " " << dr;



    f.close();
    g.close();
    return 0;
}