Cod sursa(job #1163169)

Utilizator span7aRazvan span7a Data 1 aprilie 2014 10:57:01
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<cstdio>
#include<algorithm>
#include<vector>
#define M -2000000000
using namespace std;
FILE *f=fopen("ssm.in","r");
FILE *g=fopen("ssm.out","w");
int maxx=M,s,x,i,n,maxel=M;
vector<int>a,sol;
int main()
{
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++)
    {
        fscanf(f,"%d",&x);
        if(x>maxel)
            maxel=x;
        s+=x;
        a.push_back(x);
        if(s<0){s=0;while(!a.empty())a.pop_back();}
        else
        {
            if(maxx<s)
            {sol=a;maxx=s;}


        }
    }
    if(s!=0)
    {

    fprintf(g,"%d ",maxx);
    for(i=0;i<sol.size();i++)
        fprintf(g,"%d ",sol[i]);
    }
    else
    {
        fprintf(g,"%d %d",maxel,maxel);
    }

    return 0;
}