Cod sursa(job #2809293)

Utilizator David0911David Teregovan David0911 Data 26 noiembrie 2021 16:39:20
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
/* Se dă un şir S[] = (s1, s2, .., sN) de lungime N.
O subsecvenţă a şirului este de forma: (si, si+1, ..., sj) cu 1 ≤ i ≤ j ≤ N, iar suma subsecvenţei este si + si+1 + ... + sj.*/
/*Se cere să se determine subsecvenţa de sumă maximă.*/
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int s;
int a[6000001];
int main()
{
    int n, maxim = -1e9, st = 0, dr = 1, l = 0, stmax = 0;
    fin >> n;
    for (int i = 1; i <= n; i++)
    {
        fin >> a[i];
        if (s < 0)
        {
            s = 0;
            st = i;
        }
        s = s + a[i];
        if (s > maxim)
        {
            maxim = s;
            stmax =  st;
            dr = i;
        }
    }
    fout << maxim << " " << stmax << " " << dr;
    return 0;
}