Cod sursa(job #418220)

Utilizator johnbBaranga Ionut johnb Data 15 martie 2010 17:34:04
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <limits.h>
using namespace std;

ifstream in("ssm.in");
ofstream out("ssm.out");




int main() {
     int elem, n, sum , best, min, bestSum, e, b = 0, bt;
     in >> n;
     in >> elem; 
     bestSum = sum = best = elem;
     min     = bestSum < 0 ? bestSum : 0;
     bt = bestSum < 0 ? 1 : 0;
     for (int i = 1; i < n; i++) {
         in >> elem;
         sum += elem;
         best = sum - min;
         if (sum < min) {
            bt = i;
            min = sum;
         }
         if (best > bestSum) {
            bestSum = best;
            e = i;
            b = bt == e ? e : bt + 1;
         }
     }
     out << bestSum << " " << b + 1 << " " << e + 1 ;
     return 0;
     
}