Cod sursa(job #894187)

Utilizator Cosmin1490Balan Radu Cosmin Cosmin1490 Data 26 februarie 2013 20:08:59
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <fstream>
 
#define NMAX 6000009
 
using namespace std;
 
int N;
int A[NMAX];
 
void citire()
{
     fstream fin("ssm.in",ios::in);
             fin>>N;
     for(int i=1;i<=N;i++)
             fin>>A[i];
              
     fin.close();
      
}
 
 
int main(int argc,char*argv[])
{
    citire();
     
    int MAX=A[1];
    int IDX=1;
    int L=1;
     
    int max=A[1];
    int inc=1;
    int l=1;
     
    for(int i=2;i<=N;i++)
    {
        if(A[i]> A[i]+max)
        {
            max=A[i];
            inc=i;
            l=1;
                if(max>MAX)
            {
                MAX=max;
                IDX=inc;
                L=l;
            }
        }
        else if( A[i] <= A[i] +max)
        {
            max+=A[i];
            l++;
            if(max>MAX)
            {
                MAX=max;
                IDX=inc;
                L=l;
            }
        }
    }
    fstream fout("ssm.out",ios::out);
    fout<<MAX<<" "<< IDX << " " << IDX+L-1<<"\n";;
     
     
 
}