Cod sursa(job #2040250)
| Utilizator | Data | 15 octombrie 2017 15:49:46 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int main()
{
int N;
int sum = 0;
int max_sum = - INT_MAX;
in >> N;
int start = 0, max_start, max_end;
for (int i = 0; i < N; i++)
{
int x;
in >> x;
sum += x;
if (sum < 0)
{
start = i + 1;
sum = 0;
}
else if (sum > max_sum)
{
max_sum = sum;
max_start = start;
max_end = i;
}
}
out << max_sum << ' ' << max_start + 1<< ' ' << max_end + 1;
}