Cod sursa(job #3142755)

Utilizator XTrim07Florea Andrei XTrim07 Data 24 iulie 2023 11:23:59
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <cstring>
#include <random>
#include <ctime>
#include <climits>
#include <map>
#include <iomanip>
#include <fstream>
//#include <Windows.h>
//#include <bits/stdc++.h>
using namespace std;

vector<int> v;

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

int main() {
    int n;
    fin >> n;
    for (int i = 0; i < n; ++i) {
        int elem;
        fin >> elem;
        v.push_back(elem);
    }
    int maxSum = v[0], currSum = v[0], firstIndex = 0, lastIndex = 0, currIndex = 0;
    for (int i = 1; i < n; ++i) {
        if (currSum < 0) {
            currSum = v[i];
            currIndex = i;
        } else {
            currSum += v[i];
        }
        if (currSum > maxSum) {
            maxSum = currSum;
            firstIndex = currIndex;
            lastIndex = i;
        }
    }
    fout << maxSum << ' ' << firstIndex + 1 << ' ' << lastIndex + 1;
    return 0;
}