Cod sursa(job #1953671)

Utilizator xAnonymouSxMandru Stefan xAnonymouSx Data 4 aprilie 2017 22:30:40
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>
#define VMAX 6000001

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int a[VMAX];

int main()
{
    int n,smax,s,pozinc,pozsf,inc,i,maxim,m;
    fin>>n;
    smax=0; s=0; pozinc=1; pozsf=0; inc=1; m=0; maxim=-9999999;
    for (i=1;i<=n;i++)
         {fin>>a[i];
         if (a[i]>=0)
            m++;
         if (maxim<a[i])
            maxim=a[i];
         }
     for (i=1;i<=n;i++)
         if (a[i]==maxim)
            {
             pozinc=i;
             pozsf=i;
             break;
            }
     if (m==0)
        fout<<maxim<<' '<<i<<' '<<i;
     else
     {for (i=1;i<=n;i++)
        {
         s=s+a[i];
         if (s>smax)
            {
             smax=s;
             pozsf=i; pozinc=inc;
            }
         if (s<0)
            {
             s=0;
             inc=i+1;
            }
        }
    fout<<smax<<' '<<pozinc<<' '<<pozsf;
     }
    return 0;
}