Cod sursa(job #2681113)

Utilizator Cezar211Popoveniuc Cezar Cezar211 Data 4 decembrie 2020 23:10:14
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>
#define NM 6000001
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n, v[NM];
void read();
int subsecv_suma_max(int& in, int& sf)
{
    int s = v[1];
    int maxx = v[1], in_ans = 1, sf_ans = 1;
    in = sf = 1;
    for(int i=2; i<=n; i++)
        if(s <= 0)
        {
            s = v[i];
            in_ans = sf_ans = i;
        }
        else
        {
            s+=v[i];
            sf_ans++;
            if(s > maxx)
            {
                maxx = s;
                in = in_ans, sf = sf_ans;
            }
        }
    return maxx;
}
int main()
{
    read();
    int in, sf;
    fout << subsecv_suma_max(in ,sf) << ' ';
    fout << in << ' ' << sf;
    return 0;
}
void read()
{
    fin >> n;
    for(int i=1; i<=n; i++)
        fin >> v[i];
}