Cod sursa(job #3253397)

Utilizator MikeStrikeAgache Mihai MikeStrike Data 2 noiembrie 2024 15:00:42
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
// Online C++ compiler to run C++ program online
#include <iostream>
#include <fstream>

using namespace std;

int main() {
 
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    
    int n;
    fin >> n;
    int v[n];
    for (int i = 0; i < n; i++) {
        fin>>v[i];
    }
    int maxSum = -(1<<30);
    int currentSum = 0;
    int start = 0;
    int bestStart = 0;
    int bestEnd = 0;
        
        
    for (int i = 0; i < n; i++) {
        currentSum += v[i];
        
        if (currentSum > maxSum) {
            maxSum = currentSum;
            bestStart = start;
            bestEnd = i;
        }
        if (currentSum < 0) {
            start = i + 1;
            currentSum = 0;
        }
    }    
    
    fout << maxSum << " " << bestStart + 1<< " " << bestEnd + 1;    
    return 0;
}