Pagini recente » Cod sursa (job #581603) | Cod sursa (job #2136778) | Autentificare | Cod sursa (job #3260000) | Cod sursa (job #3179598)
#include <stdlib.h>
#include <stdio.h>
int main() {
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
unsigned long long N,ind_start,ind_end,best_start,best_end;
int x,max_sum=(1<<31),sum=0;
scanf("%llu",&N);
for(unsigned long long i=0;i<N;i++)
{
scanf("%d",&x);
if(x>0){
if(sum==0){
ind_start=i+1;
ind_end=i+1;
}
else ind_end=i+1;
sum+=x;
if(sum==max_sum && best_end-best_start>ind_end-ind_start){
best_end=ind_end;
best_start=ind_start;
}
if(sum>max_sum){
max_sum=sum;
best_start=ind_start;
best_end=ind_end;
}
}
else{
sum+=x;
if(sum<0)
sum=0;
if(x>max_sum){
max_sum=x;
best_end=i+1;
best_start=i+1;
}
}
}
printf("%d %llu %llu",max_sum,best_start,best_end);
return 0;
}