Cod sursa(job #1810883)

Utilizator Ricso47rico rico Ricso47 Data 20 noiembrie 2016 17:31:12
Problema Subsecventa de suma maxima Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("ssm.in");
ofstream out("ssm.out");

int n, i, j, s, m, a[6000001], q, r;

int main()
{
    in >> n;

    for(i = 1; i <= n; ++ i)
    {
        in >> a[i];
    }

    for(i = 1; i < n; ++ i)
    {
        s = a[i];
        for(j = i + 1; j <= n; ++ j)
        {
            s += a[j];
            if(m < s)
            {
                m = s;
                q = i;
                r = j;
            }
            else
            {
                if(m == s && r - q > j - i)
                {
                    s = m;
                    q = i;
                    r = j;
                }
                else
                {
                    if(m == s && i < q)
                    {
                        s = m;
                        q = i;
                        r = j;
                    }
                }
            }
        }
    }

    out << m << " " << q << " " << r;
    return 0;
}