Cod sursa(job #3245111)

Utilizator Iancu007Sandea Iancu-Ioan Iancu007 Data 27 septembrie 2024 16:00:23
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
long long s[6000005];
int main()
{
    int n;
    cin>>n;
    long long a;
    int minpoz=0;
    int ri=1, rj=1;
    int ri2=1, rj2=1;
    long long rs=-10000000000;
    long long maxx=-10000000000;
    for (int i=1; i<=n; i++)
    {
        cin>>a;
        if (a>maxx)
        {
            maxx=a;
            ri2=rj2=i;
        }
        s[i]=s[i-1]+a;
        if (s[i]<s[minpoz])
            minpoz=i;
        if (s[i]-s[minpoz]>rs && minpoz!=i)
        {
            ri=minpoz+1;
            rj=i;
            rs=s[i]-s[minpoz];
        }
    }
    if (rs>maxx)
        cout<<rs<<' '<<ri<<' '<<rj;
    else
        cout<<maxx<<' '<<ri2<<' '<<rj2;
    return 0;
}