Cod sursa(job #3304850)

Utilizator paulihno15Ciumandru Paul paulihno15 Data 28 iulie 2025 09:01:14
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>
#define NMAX 2000000
#define ll long long

using namespace std;

ifstream fin("strmatch.in");
ofstream fout("strmatch.out");

int n, x, s = -1, smax;
int start, st, dr, dif_min = INT_MAX;

int main() {
    ios_base::sync_with_stdio(false);
    fin.tie(NULL);
    fout.tie(NULL);

    fin >> n;

    for (int i = 1; i <= n; i++) {
        fin >> x;
        if (s < 0) {
            s = 0;
            start = i;
        }
        s += x;
        if (s > smax) {
            smax = s;
            st = start;
            dr = i;
            dif_min = dr - st + 1;
        }
        else if (s == smax && i - start + 1 < dif_min) {
            st = start;
            dr = i;
            dif_min = dr - st + 1;
        }
    }

    fout << smax << ' ' << st << ' ' << dr;
    return 0;
}