Cod sursa(job #787015)

Utilizator xulescuStefu Gabriel xulescu Data 12 septembrie 2012 15:05:11
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;

int main(){
    ifstream f("ssm.in");
    int n, s, cur, curst, curend, absmax = 0, absst = 0, absend = 0;
    f >> n;
    f >> cur;
    curst = curend = 1;
    for(int i=2; i<=n; i++){
        f >> s;
        if(cur + s < s){
            cur = s;
            curst = curend = i;
        }
        else{
            cur += s;
            curend = i;
        }

        if(cur > absmax || (cur == absmax && curst < absst) || (cur == absmax && curst == absst && curend-curst <= absend-absst)){
            absmax = cur;
            absst = curst;
            absend = curend;
        }
    }

    f.close();

    ofstream g("ssm.out");
    g << absmax << " " << absst << " " << absend;
    g.close();

    return 0;
}