Cod sursa(job #1538666)

Utilizator sulzandreiandrei sulzandrei Data 29 noiembrie 2015 16:41:40
Problema Subsecventa de suma maxima Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
struct element
{
    long long int  value,index,lindex,sumamaxima;
};
int main()
{
    int n,x;
    in>>n;
    long long int  sume[n+1];
    element v[n+1];
    sume[0] = 0;
    element e;
    for(int i = 1 ; i <= n ; i++)
    {
        in>>v[i].value;
        v[i].index = i;
        v[i].lindex = i;
        v[i].sumamaxima = v[i].value;
        sume[i] = sume[i-1] + v[i].value;
    }
    e.index = 1;
    e.sumamaxima = sume[1];
    for(int i = 2 ; i <= n ;  i++)
    {

        v[i].sumamaxima = sume[i]-e.sumamaxima;
        v[i].lindex = e.index;
        if( sume[i] < e.sumamaxima)
        {
            e.sumamaxima = sume[i];
            e.index = i;
        }
    }
    int psumeimaxime = 1;
    int vsumeimaxime = v[1].value;
    for(int i = 2 ; i <= n ; i++)
        if (vsumeimaxime<v[i].sumamaxima)
        {
            vsumeimaxime = v[i].sumamaxima;
            psumeimaxime = i;
        }
    out<<vsumeimaxime<<" "<<v[psumeimaxime].lindex+1<<" "<<psumeimaxime;
    return 0;
}