Pagini recente » Cod sursa (job #812554) | Cod sursa (job #1305656) | Cod sursa (job #285918) | Monitorul de evaluare | Cod sursa (job #1582030)
#include <stdio.h>
#include <ctype.h>
#define INF 2000000000
#define BUF_SIZE 1<<17
int pos=BUF_SIZE;
char buf[BUF_SIZE];
FILE *in;
inline char nextch(){
if(pos==BUF_SIZE){
fread(buf, BUF_SIZE, 1, in);
pos=0;
}
return buf[pos++];
}
inline int read(){
int x=0, s=1;
char ch=nextch();
while((!isdigit(ch))&&(ch!='-')){
ch=nextch();
}
if(ch=='-'){
s=-1;
ch=nextch();
}
while(isdigit(ch)){
x=10*x+ch-'0';
ch=nextch();
}
return x*s;
}
int main(){
in = fopen("ssm.in", "r");
int n, i, smax = -INF, sc = 0, x, st, len, cst;
n=read();
for(i = 0; i < n; i++){
x=read();
if(sc < 0){
sc = 0;
cst = i;
}
sc += x;
if(sc > smax){
smax = sc;
st = cst;
len = i;
}
}
fclose(in);
FILE *out = fopen("ssm.out", "w");
fprintf(out, "%d %d %d", smax, st + 1, len + 1);
fclose(out);
return 0;
}