Cod sursa(job #1953550)

Utilizator carloursu6Ursu Carlo carloursu6 Data 4 aprilie 2017 21:26:31
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int a[6000001];
int main()
{   int i,n,pozinc=1,inc=1,pozsf=0,s=0,smax=0,m=0,maxim=-999999;
    fin>>n;
    for(i=1;i<=n;i++)
        {fin>>a[i];
        if(a[i]>=0)
            m++;
        if(a[i]>maxim)
            maxim=a[i];
        }
    for(i=1;i<=n;i++)
        if(a[i]==maxim)
            {pozinc=i;
            pozsf=i;
            break;
            }
    if(m==0)
        fout<<maxim<<" "<<pozinc<<" "<<pozsf;
        else
        {for(i=1;i<=n;i++)
            {s+=a[i];
            if(s>smax)
                {smax=s;
                pozsf=i;
                pozinc=inc;
                }
                if(s<0)
                    {s=0;
                    inc=i+1;
                    }
            }
        fout<<smax<<" "<<pozinc<<" "<<pozsf;
        }
    fout<<'\n';

    return 0;
}