Cod sursa(job #3265337)

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

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];
    }

    long long vmax = -INF, vmin = INF;
    int 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;
}