Pagini recente » Cod sursa (job #114750) | Cod sursa (job #3040302) | Cod sursa (job #3202398) | Cod sursa (job #2420945) | Cod sursa (job #2029495)
#include <cstdio>
using namespace std;
FILE *fin=fopen("ssm.in","r"),*fout=fopen("ssm.out","w");
int main(){
int n,v[6000000]={0},x,max,min,pozmax,pozmin;
fscanf(fin,"%d",&n);
fscanf(fin,"%d",&x);
v[0]=x;
min=max=x;
pozmax=pozmin=0;
for(int i=1;i<n;i++){
fscanf(fin,"%d",&x);
v[i]=v[i-1]+x;
if(max<v[i]){
max=v[i];
pozmax=i;
}
if(min>v[i]){
min=v[i];
pozmin=v[i];
}
}
if(min>0){
fprintf(fout,"%d",max);
}
else{
int max2,pozmax2;
max2=min; pozmax2=pozmin;
for(int i=pozmin;i<n;i++){
if(max2<v[i]){
max2=v[i];
pozmax2=i;
}
}
int min2=max,pozmin2=pozmax;
for(int i=pozmax;i>=0;i--){
if(min2>v[i]){
min2=v[i];
pozmin2=i;
}
}
if(max2-min>max-min2){
fprintf(fout,"%d",max2-min);
}
else{
fprintf(fout,"%d",max-min2);
}
}
return 0;
}