Cod sursa(job #2655282)

Utilizator AlexMariMarinescu Alexandru AlexMari Data 3 octombrie 2020 20:09:31
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");

#define INF 1000000000000000

long long n;

int main()
{
    long long i,st=1,dr=1,left=1,right=1,mini,summax=-INF,x,sum=0,maxi=-INF;
    fin>>n;
    mini=n+1;
    while(dr<=n)
    {
        fin>>x;
        sum+=x;
        if(sum<0)
        {
            if(sum>maxi)
            {
                maxi=x;
                left=dr-1;
                right=dr;
            }
        }
        if(sum<0)
        {
            sum=0;
            st=dr;
        }
        else
        {
            if(sum>summax)
            {
                summax=sum;
                left=st;
                right=dr;
            }
        }
        dr++;
    }
    if(summax!=-INF)
        fout<<summax<<" "<<left+1<<" "<<right;
    else
        fout<<maxi<<" "<<left+1<<" "<<right;
    return 0;
}