Pagini recente » Cod sursa (job #1630504) | Cod sursa (job #1022519) | Cod sursa (job #2080660) | Cod sursa (job #1569851) | Cod sursa (job #2687380)
#include <stdio.h>
#include <ctype.h>
#define BUFSIZE (128 * 1024)
FILE *fin, *fout;
int rpos;
char rbuf[BUFSIZE];
static inline void initRead() {
fin = fopen( "ssm.in", "r" );
rpos = BUFSIZE - 1;
}
static inline char readChar() {
if ( !(rpos = (rpos + 1) & (BUFSIZE - 1)) )
fread( rbuf, 1, BUFSIZE, fin );
return rbuf[rpos];
}
int readInt() {
int ch, res = 0, semn = 1;
while ( isspace( ch = readChar() ) );
if ( ch == '-' ) {
semn = -1;
ch = readChar();
}
do
res = 10 * res + ch - '0';
while ( isdigit( ch = readChar() ) );
return semn * res;
}
int main() {
int n, a, maxSuma, suma, st, dr, len, i;
initRead();
fscanf( fin, "%d%d", &n, &a );
maxSuma = suma = a;
st = dr = 1;
len = 0;
for ( i = 1; i < n; i++ ) {
fscanf( fin, "%d", &a );
if ( suma < 0 )
suma = len = 0;
suma += a;
len++;
if ( suma > maxSuma ) {
maxSuma = suma;
st = i - len + 2;
dr = i + 1;
}
}
fclose( fin );
fout = fopen( "ssm.out", "w" );
fprintf( fout, "%d %d %d", maxSuma, st, dr );
fclose( fout );
return 0;
}