Pagini recente » Cod sursa (job #833788) | Borderou de evaluare (job #2100086) | Cod sursa (job #2868199) | Cod sursa (job #2641154) | Cod sursa (job #1538700)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int N_MAX = 6000003;
#define foreach(i,n) for(int i = 1 ; i <= n ; i ++)
ifstream in("ssm.in");
ofstream out("ssm.out");
int sum[N_MAX];
int v[N_MAX];
int main()
{
int n,x;
in>>n;
sum[0] = 0;
foreach(i,n)
{
in>>v[i];
sum[i] = sum[i-1] + v[i];
}
int position_max_sum_left = 1,position_max_sum_right =1;
int value_max_sum = v[1];
int minimum_sum_index = 1;
int minimum_sum = sum[1];
for(int i = 2 ; i <= n ; i++)
{
if( sum[i] - minimum_sum > value_max_sum)
{
value_max_sum = sum[i] - minimum_sum ;
position_max_sum_left = minimum_sum_index+1;
position_max_sum_right = i;
}
if( sum[i] < minimum_sum)
{
minimum_sum = sum[i];
minimum_sum_index = i;
}
}
out<<value_max_sum<<" "<<position_max_sum_left<<" "<<position_max_sum_right;
return 0;
}