Cod sursa(job #2190594)

Utilizator georgeoctavianGeorge Octavian Grumazescu georgeoctavian Data 31 martie 2018 11:43:09
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.26 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n,i,smax=-2000000000,s,poz,nr,x,nrmax;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>x;
        if(s+x>=x)
        {
            s+=x;
            nr++;
        }
        else
        {
            nr=1;
            s=x;
        }
        if(s>smax)
            poz=i,smax=s,nrmax=nr;
        else
            if(s==smax)
                if(nrmax>nr)
                    nrmax=nr,poz=i;
    }
    fout<<smax<<' '<<poz-nrmax+1<<' '<<poz;
    fin.close();
    fout.close();
    return 0;
}
/*#include <i>

using namespace std;
int a[100],poz,pozmax,nr,nrmax,N,i;
int main()
{
    cin>>N;
    for(i=1;i<=N;i++)
        cin>>a[i];
    int sum = 0;
    int bestSum = -999999999;
    for (i = 1; i <= N; i++)
    {
        nr++;
        sum += a[i];
        if (sum < 0)
        {
            sum=0;
            nr=0;
        }
        else
            if (sum > bestSum)
            {
                bestSum=sum;
                poz=i;
                nrmax=nr;
            }
    }
    cout<<bestSum<<' '<<nrmax<<' '<<poz-nrmax+1<<' '<<poz;//suma max + nr el din smax + prim elem + ult elem
    return 0;
}
*/