Cod sursa(job #2041475)

Utilizator LucaSeriSeritan Luca LucaSeri Data 17 octombrie 2017 13:10:37
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>

using namespace std;

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

int main(){
    int n;
    f >> n;
    int p = 0, bestp, bestu, maxim = -10000000, 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{
            if(sum > maxim){
                maxim = sum;
                bestp = p;
                bestu = i-1;
            }
            sum += x;
        }
    }


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