Cod sursa(job #2447635)

Utilizator MatteoalexandruMatteo Verzotti Matteoalexandru Data 14 august 2019 00:22:20
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
// C++
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <stack>
#include <queue>
#include <deque>
#include <ctime>
#include <map>
#include <chrono>
#include <cmath>
#define INF 0x3f3f3f3f
#define MAX(a,b) a>b ? a:b
#define MIN(a,b) a<b ? a:b

using namespace std;

/*mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

long long rand_seed() {
    long long a = rng();
    return a;
}*/



int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    int n, i;
    int ssm, x, cursum = 0, beg1, beg2, End;
    scanf("%d", &n);
    ssm = -(1 << 30);
    for(i = 1; i <= n; i++){
        scanf("%d", &x);
        if(cursum < 0){
            cursum = x;
            beg1 = i;
        } else
            cursum += x;
        if(ssm < cursum){
            ssm = cursum;
            beg2 = beg1;
            End = i;
        }
    }
    printf("%d %d %d\n", ssm, beg2, End);
    return 0;
}