Cod sursa(job #2818721)
| Utilizator | Data | 16 decembrie 2021 19:19:39 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 80 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <iostream>
#define INFINIT 2147483647
using namespace std;
int main() {
FILE *fin, *fout;
int n, a, s, st, dr, len, i;
long long smax;
fin = fopen( "ssm.in", "r" );
fscanf( fin, "%d", &n );
s = 0;
st = dr = len = 0;
smax = -INFINIT;
for( i = 0; i < n; i++ ) {
fscanf( fin, "%d", &a );
if( s > 0 ) {
s += a;
len++;
}
else {
s = a;
len = 0;
}
if( s > smax ) {
smax = s;
dr = i;
st = dr - len;
}
}
fout = fopen( "ssm.out", "w" );
fprintf( fout, "%lld %d %d", smax, st + 1, dr + 1 );
return 0;
}
