Pagini recente » Cod sursa (job #2127267) | Cod sursa (job #1024742) | Cod sursa (job #2440257) | Cod sursa (job #2437384) | Cod sursa (job #2687381)
#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();
n = readInt();
a = readInt();
maxSuma = suma = a;
st = dr = 1;
len = 0;
for ( i = 1; i < n; i++ ) {
a = readInt();
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;
}