Cod sursa(job #2645262)

Utilizator sculap1234321Panainte Alexandru sculap1234321 Data 27 august 2020 16:38:59
Problema Subsecventa de suma maxima Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
int sumPart[100000];
int main()
{
    int n, sum = 0, maxSum=INT_MIN,i;
    int start,finish = -1;
    int local_start = 0;
    int k;
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    fin >> n;
    for(int i = 0 ; i < n ; i++)
    {
        fin >> sumPart[i];
        k = sumPart[i];
        sum += k;
        if(sum < 0)
        {
            sum = 0;
            local_start = i + 1;
        }
        else if (sum > maxSum)
        {
            start = local_start;
            finish = i;
            maxSum = sum;
        }

    }
    if(finish != -1) fout<<maxSum<<" "<<start + 1<<" "<<finish + 1;
    else
    {
        maxSum = sumPart[0];
        start=finish=0;
        for(i = 1; i < n ; i++)
        {
            if(maxSum < sumPart[i])
            {
                maxSum = sumPart[i];
                start=finish=1;
            }
        }
        fout<<maxSum<<" "<<start - 1<<" "<<finish - 1;
    }
    return 0;
}