Cod sursa(job #2345422)

Utilizator traiandobrinDobrin Traian traiandobrin Data 16 februarie 2019 12:39:10
Problema Subsecventa de suma maxima Scor 35
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>

using namespace std;
//int v[6000000005];
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int a[6000005];
int main()
{
    long long s=0,n,i,mi=0,mj=0,ms=-999999999999999999;
    cin>>n;
    for(i=1;i<=n;++i)
    {
        cin>>s;
        a[i]=a[i-1]+s;
        for(int j=1;j<=i;++j)
        {
            if(ms<a[i]-a[j])
            {
                ms=a[i]-a[j];
                mj=j+1;
                mi=i;
            }
            else
                if(ms==a[i]-a[j])
                   {
                       if(j+1<mj)
                       {
                           mj=1+j;
                           mi=i;
                       }
                       else
                       if(j+1==mj)
                           if(i<mi)
                           mi=i;
                   }
        }
    }
    cout<<ms<<" "<<mj<<" "<<mi;
    return 0;
}