Cod sursa(job #1150000)
| Utilizator | Data | 22 martie 2014 14:52:00 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <cstdio>
using namespace std;
int v[6000000];
int main()
{
FILE *fin = fopen( "ssm.in", "r" ), *fout = fopen( "ssm.out", "w" );
int n, smax = -2000000000, pmax = 1, umax = 1, x = 0, sc = 0, p;
fscanf( fin, "%d", &n );
for( int i = 0; i < n; i++ )
fscanf( fin, "%d", &v[i] );
for( int i = 0; i < n; i++ ){
if( sc < 0 ){
sc = 0;
p = i;
}
sc += v[i];
if( sc > smax ){
smax = sc;
pmax = p;
umax = i;
}
}
fprintf( fout, "%d %d %d", smax, pmax + 1, umax + 1 );
return 0;
}
