Cod sursa(job #3265339)

Utilizator Cristian_NegoitaCristian Negoita Cristian_Negoita Data 29 decembrie 2024 15:11:22
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int DIM = 6e6 + 5, INF = 2e9;
int a[DIM], s[DIM];

signed main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(nullptr);

    int n;
    fin >> n;
    for(int i = 1; i <= n; i++)
    {
        fin >> a[i];
        s[i] = s[i-1] + a[i];
    }

    int vmax = -INF, vmin = INF, st = -1, dr = -1, idx = -1;
    for(int i = 1; i <= n; i++)
    {
        if(vmax < s[i] - vmin)
        {
            vmax = s[i] - vmin;
            st = idx + 1;
            dr = i;
        }
        if(s[i] < vmin)
        {
            vmin = s[i];
            idx = i;
        }
    }
    fout << vmax << " " << st << " " << dr;

    return 0;
}