Cod sursa(job #2109448)

Utilizator maria15Maria Dinca maria15 Data 19 ianuarie 2018 19:12:15
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>

using namespace std;

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

int n, i, s[6000003], maxim, x, ant, nr, v[6000003], t[6000003], u;

int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>x;
        if(i == 1){
            maxim = s[1] = x;
            ant = x;
        }
        else{
            if(s[i-1]<0)
                s[i] = x;
            else{
                s[i] = s[i-1] + x;
                t[i] = i-1;
            }
        }
        if(s[i] > maxim){
            maxim = s[i];
            u = i;
        }
        ant = x;
    }
    while(u){
        v[++nr] = u;
        u = t[u];
    }
    fout<<maxim<<" "<<v[nr]<<" "<<v[1];
    return 0;
}