Pagini recente » Cod sursa (job #3041233) | Cod sursa (job #1483957) | Cod sursa (job #2289792) | Cod sursa (job #1715887) | Cod sursa (job #2438570)
#include<cstdio>
#include<cctype>
#define oo 0x7fffffff
#define BUF_SIZE 1 << 19
char buf[BUF_SIZE];
int pos = BUF_SIZE;
char getChar(FILE* fin) {
if(pos == BUF_SIZE) {
fread(buf,1,BUF_SIZE,fin);
pos = 0;
}
return buf[pos++];
}
int readInt(FILE* fin) {
int res = 0;
int semn = 1;
char ch;
do {
ch = getChar(fin);
if(ch == '-')
semn = -semn;
}while(!isdigit(ch));
do {
res = 10*res + ch - '0';
ch = getChar(fin);
}while(isdigit(ch));
return res*semn;
}
int main() {
int n, x, bestSum, sum, start, b, e, i;
FILE* fin, *fout;
fin = fopen("ssm.in","r");
fout = fopen("ssm.out","w");
n = readInt(fin);
b = e = start = 1;
bestSum = -oo;
sum = 0;
for(i = 1; i <= n; i++) {
x = readInt(fin);
printf("%d ",x);
if(sum < 0) {
sum = x;
start = i;
} else sum += x;
if(sum > bestSum) {
bestSum = sum;
b = start;
e = i;
}
}
fprintf(fout,"%d %d %d\n",bestSum,b,e);
fclose(fin);
fclose(fout);
return 0;
}