Cod sursa(job #2041483)

Utilizator LucaSeriSeritan Luca LucaSeri Data 17 octombrie 2017 13:16:49
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>

using namespace std;

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

int main(){
    int n;
    f >> n;
    int p = 0, bestp, bestu, maxim = -1000000000, sum = 0;
    int x;
    for(int i = 0; i < n;++i){
        f >> x;
        if(x > sum+x){
            if(sum > maxim){
                maxim = sum;
                bestp = p;
                bestu = i-1;
            }
            p = i;
            sum = x;
        }
        else{
            sum += x;
            if(sum > maxim){
                maxim = sum;
                bestp = p;
                bestu = i;
            }
        }
    }


    if(sum > maxim){
        maxim = sum;
        bestp = p;
        bestu = n-1;
    }
    if(n == 1) g << x << " 1 1";
    else g <<maxim << ' ' << bestp+1<< ' ' << bestu+1;
}