Cod sursa(job #2146267)

Utilizator tanasaradutanasaradu tanasaradu Data 27 februarie 2018 21:41:51
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n;
int main()
{
    int x , left , right , p;
    long long sum ,  s ;
    fin >> n;
    fin >> x;
    left = right = p = 1;
    s = sum = x;
    if(s < 0)
    {
        s = 0;
        p = 2;
    }
    for(int i = 2 ; i <= n ; i++)
    {
        fin >> x;
        s += x;
        if(sum < s)
        {
            sum = s;
            left = p;
            right = i;
        }
        if(s < 0)
        {
            s = 0;
            p = i + 1;
        }
    }
    fout << sum << " " << left << " " << right << "\n";
    fin.close();
    fout.close();
    return 0;
}