Cod sursa(job #1528390)

Utilizator Paul9807Herman Paul Paul9807 Data 19 noiembrie 2015 17:06:44
Problema Subsecventa de suma maxima Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<iostream>
#include<fstream>
using namespace std;
int maxim (int a,int b)
{
    if (a>b)
        return a;
    else
        return b;
}
int main ()
{
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    int n;
    fin>>n;
    int v[n];
    for (int i=0;i<n;i++)
    {
        fin>>v[i];
    }
    int DP[n+1];
    DP[0]=0;
    int inceput=0;
    int sfarsit=0;
    int maximul=-10000;
    int ct=0;
    for (int i=0;i<n;i++)
    {
        DP[i]=maxim(DP[i-1]+v[i],v[i]);
        if (DP[i]>maximul)
            {
                maximul=DP[i];
                sfarsit=i;
                ct++;
            }

    }
    inceput=sfarsit+1-ct;
    fout<<maximul<<" "<<inceput<<" "<<sfarsit+1;
    fin.close();
    fout.close();
}