Cod sursa(job #2490250)

Utilizator MariusblockMoga Marius-Ioan Mariusblock Data 9 noiembrie 2019 22:47:51
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <bits/stdc++.h>
#define MOD 1999999973
#define ull unsigned long long
#define FOR(i, a, b) for(i = a; i <= b; i++)

using namespace std;

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

int main()
{
    long long n,i,S = 0,maxim = 0,x;
    int Begin,End,BeginMax;
    fin>>n;
    FOR(i,1,n){
        fin>>x;
        if(S <= 0 ){
            S = x;
            Begin = i;
        }else{
            S += x;
        }
        if(maxim < S){
            maxim = S;
            BeginMax = Begin;
            End = i;
        }else if(maxim == S){
            if(BeginMax > Begin){
                BeginMax = Begin;
                End = i;
            }else if(BeginMax == Begin){
                if(End > i){
                    End = i;
                }
            }
        }
    }
    fout<<maxim<<" "<<BeginMax<<" "<<End<<endl;
    return 0;
}