Cod sursa(job #925267)

Utilizator adascaluAlexandru Dascalu adascalu Data 24 martie 2013 13:51:28
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <vector>
#include<fstream>

using namespace std;

int main()
{
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    int n,x,i;
    vector<int> v;
    long CurrentSum=0,CurrentPoz,SumMax=0,CurrentLength=0,length,poz;
    f>>n>>x;
    v.push_back(x);
    CurrentSum=SumMax=x;
    for( i=2;i<=n;i++)
    {
        f>>x;
        v.push_back(x);
        if(CurrentSum+x<CurrentSum || x>CurrentSum)
        {
            if(CurrentSum>SumMax)
            {
                SumMax=CurrentSum;
                length=CurrentLength;
                poz=CurrentPoz;
            }
            CurrentSum=x;
            CurrentPoz=i;
            CurrentLength=1;
        }
        else
        {
            CurrentLength++;
            CurrentSum+=x;
        }
    }
    for(i=poz-1;length;i++,length--) g<<v[i]<<" ";
    return 0;
}