Pagini recente » Cod sursa (job #1236016) | Cod sursa (job #88655) | Cod sursa (job #1925600) | Cod sursa (job #2934586) | Cod sursa (job #1125009)
#include <cstdio>
FILE *f=fopen("ssm.in", "r");
FILE *g=fopen("ssm.out", "w");
int s, nr, l1=1, l2=1, v[6000001], smax, l1m, l2m, nr0, minn=-2147483640;
int main()
{
int n;
fscanf(f, "%d", &n);
for(int i=1; i<=n; ++i){
fscanf(f, "%d", &v[i]);
if(v[i]<0) ++nr0;
if(v[i]>minn){
minn=v[i];
l1m=i; l2m=i;
}
}
if(nr0==n){
fprintf(g, "%d %d %d", minn, l1m, l2m);
return 0;
}
for(int i=1; i<=n; ++i){
s+=v[i];
if(s<0){
s-=v[i]; --l2;
l1=i+1; l2=i;
s=0;
}
else{
s+=nr;
++l2;
}
if(s>smax){
smax=s;
l1m=l1;
l2m=l2;
}
}
fprintf(g, "%d %d %d", smax, l1m, l2m);
return 0;
}