Cod sursa(job #764553)

Utilizator mi5humihai draghici mi5hu Data 5 iulie 2012 16:17:35
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>
#include <fstream>
#include <limits.h>
using namespace std;

int main()
{
    int n, p1_p, p1_f, p2_f, s_p_old, s_p_new, s_max;
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    
    f >> n;
    p1_p = 0;
    s_p_old = 0;
    s_max = -INT_MAX;
    for (int i = 0; i < n; i++){ 
        f >> s_p_new;
        if (s_p_old >= 0) {
           s_p_new += s_p_old;
        } else {
           p1_p = i + 1;       
        }
        
        if (s_p_new > s_max) {
           s_max = s_p_new;
           p1_f = p1_p;
           p2_f = i + 1;            
        }
        s_p_old = s_p_new;            
    } 
    g << s_max << " " << p1_f << " " << p2_f;
    
    f.close();
    g.close();
    return 0;
}