Cod sursa(job #2783072)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 13 octombrie 2021 18:55:12
Problema Subsecventa de suma maxima Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>

using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int st,n,i,dr,p,S,Max,a[100001];
int main()
{
    f>>n;
    int nr=0;
    for(i=1;i<=n;i++)
    {
        f>>a[i];
        if(a[i]>=0)
            nr++;
    }
    if(nr==1)
        for(i=1;i<=n;i++)
            if(a[i]>=0)
            {
                g<<i<<" "<<i;
                return 0;
            }
    Max=-1000000000;
    st=0,dr=1;
    p=1;
    S=a[1];
    for(i=2;i<=n;i++)
    {
        if(S<0)
        {
            S=a[i];
            p=i;
        }
        else
            S+=a[i];
        if(S>Max)
        {
            Max=S;
            st=p;
            dr=i;
        }
    }
    g<<S<<" "<<st<<" "<<dr;
    return 0;
}