Cod sursa(job #3139344)

Utilizator KRISTY06Mateiu Ianis Cristian Vasile KRISTY06 Data 27 iunie 2023 15:04:03
Problema Subsecventa de suma maxima Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.41 kb
#include <iostream>
#include <fstream>
using namespace std;

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

const int MAX_LENGTH = 6000000;
const int MAX_VALUE = 2000000;

int main() {
  /*  int numLen;
    cin >> numLen;
    int num[MAX_LENGTH + 1];
    for (int i = 1; i <= numLen; ++i) {
        cin >> num[i];
    }
    int maxSum = -MAX_VALUE - 1, start = 0, end = 0;
    for (int i = 1; i <= numLen; ++i) {
        int sum = 0;
        for (int j = i; j <= numLen; ++j) {
            sum += num[j];
            if (sum > maxSum) {
                maxSum = sum;
                start = i;
                end = j;
            }
        }
    }
    cout << maxSum << ' ' << start << ' ' << end;*/
    int numLen;
    fin >> numLen;
    int sum[MAX_LENGTH + 1] = {0};
    for (int i = 1; i <= numLen; ++i) {
        int number;
        fin >> number;
        sum[i] = sum[i - 1] + number;
    }
    int maxSum = -MAX_VALUE - 1, start = 0, end = 0;
    for (int i = 1; i <= numLen; ++i) {
        for (int j = i; j <= numLen; ++j) {
            if (sum[j] - sum[i - 1] > maxSum) {
                maxSum = sum[j] - sum[i - 1];
                start = i;
                end = j;
            }
        }
    }
    fout << maxSum << ' ' << start << ' ' << end;
    return 0;
}
/*
 7
 5 -6 3 4 -2 3 -3
 =>
 8 3 6
 
 2
 3 1
 =>
 4 1 2
 
 5
 3 1 -3 -1 4
 =>
 4 1 2
 
 1
 3
 =>
 3 1 1
 
 3
 -2 -1 -3
 =>
 -1 2 2
 
 3
 -1 -1 -1
 =>
 -1 1 1
 */