Cod sursa(job #1176322)

Utilizator x3medima17Dima Savva x3medima17 Data 25 aprilie 2014 22:31:33
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

struct node
{
    int val,k;
};


int main()
{
    int maxx = 0;
    int maxi = 0;
    int maxk = 0;
    vector<int> V;
    int n;
    fin>>n;
    //cout<<n;
    vector<node> L(n);
    for(int i=0;i<n;i++)
    {
        int k;
        fin>>k;
        V.push_back(k);
        if(i==0)
        {
            L[i].val = V[i];
            L[i].k = 1;
            continue;
        }
        L[i].val = max(L[i-1].val+V[i],V[i]);
        if(V[i] <= V[i]+L[i-1].val)
            L[i].k = L[i-1].k+1;
        else
            L[i].k = 1;

        if(L[i].val > maxx)
        {
            maxx = L[i].val;
            maxi = i;
            maxk = i - L[i].k+2;
        }
    }
    for(int i=0;i>n;i++)
        cout<<L[i].val<<" "<<L[i].k<<endl;
    fout<<maxx<<" "<<maxk<<" "<<maxi+1;
}