Cod sursa(job #348552)
Utilizator | Florin Pogocsan Binary_Fire | Data | 16 septembrie 2009 00:32:49 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <iostream>
#include <fstream>
using namespace std;
#define fin "ssm.in"
#define fout "ssm.out"
int main()
{
int i, N, val, sum = 0, mins = 0, st = 0, dr = 0, best = -(1<<31);
int posm = 0, tmp;
ifstream f1(fin);
ofstream f2(fout);
f1 >> N;
for ( i = 1; i <= N; ++i )
{
f1 >> val;
sum += val;
if ( (tmp = sum - mins) > best )
best = tmp, st = posm + 1, dr = i;
if ( sum <= mins ) mins = sum, posm = i;
}
f2 << best << " " << st << " " << dr << endl;
return 0;
}