Cod sursa(job #3221014)

Utilizator Gabriel_DaescuDaescu Gabriel Florin Gabriel_Daescu Data 5 aprilie 2024 18:38:00
Problema Subsecventa de suma maxima Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>
using namespace std;
ifstream  fin("ssm.in");
ofstream fout("ssm.out");
int N,v[6000002],i,j,st,dr;
long long sp[6000002],smax,s;
int main()
{
    fin>>N;

    for(i=1; i<=N; i++)
    {
        fin>>v[i];
        sp[i]=v[i]+sp[i-1];
    }

    smax=-1000000000;
    smax=smax*1000000000;

    for(i=1; i<=N; i++)
    {
        for(j=i; j<=N; j++)
        {
            s=sp[j]-sp[i-1];
            if(s==smax)
            {
               if(i<st)
               {
                   st=i;
                   dr=j;
               }
               else
               {
                   if(i==st)
                   {
                       if((j-i+1)<(dr-st+1))
                       {
                           st=i;
                           dr=j;
                       }
                   }
               }
            }

            if(s>smax)
            {
                smax=s;
                st=i;
                dr=j;
            }
        }
    }

    fout<< smax << " " << st << " " << dr;

    return 0;
}