Cod sursa(job #1232183)

Utilizator thinkphpAdrian Statescu thinkphp Data 22 septembrie 2014 12:25:59
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#define FIN "ssm.in"
#define FOUT "ssm.out"
#define MAXN 7000005

using namespace std;

int N, arr[ MAXN ];

void read() {

     int i;

     ifstream f(FIN);

     f>>N;

     for(i = 1; i <= N; i++) {

         f>>arr[ i ];
     } 

     f.close();
};

void solve() {

     int i, begin, start, end, sum = 0;

     long long int bestSum = -0x3f3f3f3f;

     ofstream o(FOUT); 

     for(i = 1; i <= N; i++) {

         if( sum < 0 ) sum = arr[ i ], start = i;
             else      sum += arr[ i ];  
 
         if( sum > bestSum ) bestSum = sum, begin = start, end = i;
     }
 
     o<<bestSum<<" "<<begin<<" "<<end;

     o.close();
};

int main() {

    read();
    solve();
 
    return(0);
};