Pagini recente » Cod sursa (job #2476330) | Cod sursa (job #1414799) | Cod sursa (job #1165466) | Cod sursa (job #2356914) | Cod sursa (job #2905743)
#include<iostream>
#include<stdint.h>
#include<fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int maxSub(int16_t a[], int size, int &start, int &end)
{
int maxim = a[0];
int start_c = 0;
int end_c = 0;
int maxim_curent = a[0];
for (int i = 1; i < size; i++)
{
if(a[i] > maxim_curent+a[i]){
maxim_curent = a[i];
start_c = i;
end_c = i;
}
else{
maxim_curent = maxim_curent+a[i];
end_c = i;
}
if(maxim < maxim_curent){
maxim = maxim_curent;
start = start_c;
end = end_c;
}
}
return maxim;
}
int main()
{
int16_t a[900000];
int n = 0;
f >> n;
for(int i = 0; i < n; ++i)
f >> a[i];
int start = 0;
int end = 0;
int max_sum = maxSub(a, n, start, end);
g << max_sum << ' ' << start+1 << ' ' << end+1;
return 0;
}