Cod sursa(job #2673193)

Utilizator Rowantoie vlad Rowan Data 16 noiembrie 2020 11:13:10
Problema Subsecventa de suma maxima Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
//
//  main.cpp
//  ssm
//
//  Created by Toie Vlad on 16/11/2020.
//

#include <iostream>
#include <fstream>
#define MAX_N 7000005
using namespace std;

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

int v[MAX_N];

int main() {
    int n;
    fin>>n;
    for(int i = 1; i<=n; i++) {
        fin>>v[i];
    }
    int l, r, max = -MAX_N;
    for(int i = 1; i<=n; i++) {
        int sum = 0;
        for(int j=i; j<=n; j++) {
            sum += v[j];
            if(max < sum) {
                max = sum;
                l = i;
                r = j;
            }
        }
    }
    fout<<max<<" "<<l<<" "<<r<<endl;
    return 0;
}
//    SUMA DE SUBSECVENTA MAXIMA
//    sum[0] = 0;
//    for(int i = 1; i<=n; i++) {
//        sum[i] = sum[i-1] + v[i];
//    }
//    int min_sum = 0;
//    int max_sum = -MAX_N;
//    for(int i = 1; i<=n; i++) {
//        sub_v[i] = sum[i] - min_sum;
//        if(max_sum < sub_v[i]) {
//            max_sum = sub_v[i];
//        }
//        if(min_sum > sub_v[i]) {
//            min_sum = sub_v[i];
//        }
//    }
//    cout<<max_sum<<" ";