Cod sursa(job #2853476)

Utilizator Vlad10Vlad Negut Vlad10 Data 20 februarie 2022 12:25:16
Problema Subsecventa de suma maxima Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
long int s[6000001];
int main()
{
    int n,i,x,poz1,poz2;
    long long smin=LLONG_MAX, smax=-LLONG_MAX,difmax=-LLONG_MAX;//ulong max cred ca e
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>x;
        s[i]=s[i-1]+x; //cand i=1 s[0]=0
        if(s[i]<smin)
        {
            smin=s[i];
            poz1=i;
        }
        if(s[i]>smax)
        {
            smax=s[i];
            poz2=i;
        }
        cout<<smin<<" "<<smax<<"\n";
        if(i>1)
        {
            if(smax-smin>difmax)
                difmax=smax-smin;
        }
    }
    if(s[1]>difmax)
    {
        difmax=s[1];
        poz1=1;
        poz2=1;
    }
    fout<<difmax<<" "<<poz1+1<<" "<<poz2;
    return 0;
}