Cod sursa(job #2674173)

Utilizator dana_licaDana Lica dana_lica Data 18 noiembrie 2020 18:35:47
Problema Subsecventa de suma maxima Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");

const int NMAX = 5e5 + 1;
int N, s, x[NMAX], i, j, st, dr, p, Max;

int main()
{

    f >> N;
    for(i = 1; i <= N; i++) f >> x[i];

    p = 1;
    for(i = 1; i <= N; i++)
    {
        s=0;
        for(j = i; j <= N; j++)
        {
            s += x[j];
            if(s > Max)
            {
                Max = s;
                st = i;
                dr = j;
            }
            else if(s == Max && dr - st > j - i)
            {
                st = i;
                dr = j;
            }
        }
    }
    g << Max << " "<< st << " " << dr;

    return 0;
}