Cod sursa(job #1261319)

Utilizator justsomedudePalade Thomas-Emanuel justsomedude Data 12 noiembrie 2014 11:25:00
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<iostream>
#include<fstream>
using namespace std;
long long int a[6000000];
ifstream in("ssm.in");
ofstream out("ssm.out");
int main ()
{
     int s,smax,i,n,st,dr,stfin,drfin;

     in>>n;
     for (i=1;i<=n;i++)
     {
         in>>a[i];
     }
     st=dr=stfin=drfin=1;
     s=a[1];
     if (s<0)
         s=0;

     smax=s;
     for (i=2;i<=n;i++)
     {
         s=s+a[i];

         if (s>smax)
            {
             smax=s;
             drfin=dr;
             stfin=st;
            }

         if (s<0)
            {
            s=0;
            st=i+1;
            dr=i+1;
            }
         else
         {
             dr++;
         }

     }

     out<<smax<<" "<<stfin<<" "<<drfin;


     return 0;
}