Cod sursa(job #3228273)

Utilizator MihneaCircoMihnea Circo MihneaCirco Data 7 mai 2024 10:55:20
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n,v[6000000],imx=-1000000,mxn=-2000000000,smx=-1000000,sum,stmax,drmax;
int main()
{
    bool ok=0;
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
        if(v[i]>=0) {
            ok=1;
        }
    }
    if(ok==0)
    {
        for(int i=1;i<=n;i++)
            if(v[i]>mxn) {
                mxn=v[i];
                imx=i;
            }
        fout<<mxn<<' '<<imx<<' '<<imx;
    }
    else
    {
        int sum=0;
        int st=1;
        for (int dr=1;dr<=n;dr++)
        {
            sum+=v[dr];
            if(sum<0)
            {
                st=dr+1;
                sum=0;
            }
            if(sum>smx) 
            {
                smx=sum;
                stmax=st;
                drmax=dr;
            }
            
        }
        fout<<smx<<' '<<stmax<<' '<<drmax;
    }
    fout<<'\n';
}