Cod sursa(job #1238597)
| Utilizator | Data | 7 octombrie 2014 11:43:48 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream ka("ssm.in");
ofstream ki("ssm.out");
int n, x;
int best, ant, start, finish, start_bun, finish_bun;
long long maxim = -(1 << 30);
int main()
{
ka >> n;
best = -1;
for(int i = 1; i <= n; i++)
{
ka >> x;
if(x > best + x)
{
best = x;
start = i;
}
else
best += x;
finish = i;
if(best > maxim)
{
maxim = best;
start_bun = start;
finish_bun = finish;
}
ant = best;
}
ki << maxim << " " << start_bun << " " << finish_bun;
}
