Pagini recente » Cod sursa (job #2698138) | Cod sursa (job #800393) | Cod sursa (job #583699) | Cod sursa (job #1026090) | Cod sursa (job #2673252)
//
// main.cpp
// ssm
//
// Created by Toie Vlad on 16/11/2020.
//
#include <iostream>
#include <fstream>
#include <limits.h>
#define MAX_N 7000005
#define INF 2140000000
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 = 0, r = 0, max = -INF, min = 0, c_i = 0;
for(int i = 1; i<=n; i++) {
v[i] += v[i-1];
if(max < v[i] - min) { //v[i] o sa fie suma elementelor pana la poz i -> comparam cu (v[i] - min)
max = v[i] - min;
l = c_i + 1;
r = i;
}
if(min > v[i]) {
min = v[i];
c_i = i;
}
}
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<<" ";