Cod sursa(job #1892378)

Utilizator shantih1Alex S Hill shantih1 Data 24 februarie 2017 22:14:52
Problema Subsecventa de suma maxima Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;

int n, s, st, dr, x, mx=-9999999, in, l;
int v[6000000], i, j, sum[6000000];

int main () {
    
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    
    fin >> n;   l=n+1;
    for (i = 1; i <= n; i++)
    {
        fin >> v[i];
        s += v[i];
        sum[i] = s;
        //cout << sum[i] << " ";
    }
    //cout << "\n";
    
    for (i = 1; i <= n; i++)
    {
        for (j = i; j <= n; j++)
        {
            x = sum[j] - sum[i-1];
            if (x == mx && j-i+1 < l)
            {   mx = x;     st = i; dr = j; }
            
            if (x > mx)
            {
                mx = x;
                l = j-i+1;
                st = i;   dr = j;
                //fout << mx << " " << st << " " << dr << "\n";
            }
            //fout << x << " ";
        }
    }
    fout << mx << " " << st << " " << dr << "\n";
}
//5 -6 3 4 -2 3 -3