Cod sursa(job #1416921)

Utilizator Coroian_DavidCoroian David Coroian_David Data 9 aprilie 2015 09:23:42
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int v[6000001],n,i,x,s,stx,st,drx,mx;
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    for(st=1,i=1;i<=n;i++)
    {
        //cout<<mx<<" "<<stx<<" "<<drx<<" "<<i<<'\n';
        if(s<0)
        {
            st=i;
           // cout<<"*"<<st<<" ";
            s=v[i];
            //cout<<v[i]<<'\n';
        }
        else
        {
            s=s+v[i];
           // cout<<s<<" "<<v[i]<<'\n';
            if(mx<s)
            {
                mx=s;
                stx=st;//cout<<"++"<<i<<'\n';
                drx=i;
            }
            else
                if(s==mx)
                {
                    if(st<stx)
                    {
                        stx=st;
                        drx=i-st+1;
                    }
                    else
                        if(stx==st)
                        {
                            if(i-st+1<drx)
                                drx=i-st+1;
                        }
                }
        }
    }
    g<<mx<<" "<<stx<<" "<<drx<<'\n';
    f.close();
    g.close();
    return 0;
}