Pagini recente » Cod sursa (job #1935611) | Cod sursa (job #2538996) | Cod sursa (job #2764088) | Cod sursa (job #1026615) | Cod sursa (job #5558)
Cod sursa(job #5558)
#include <stdio.h>
#define maxN 1001011
int n, res;
int pro[maxN];
int din1[maxN], din2[maxN];
void inputFunc(){
FILE*fi=fopen("2sec.in","r");
fscanf(fi,"%d",&n);
for(int i=0; i<n; i++){
fscanf(fi,"%d", pro+i);
}
fclose(fi);
}
void outputFunc(){
FILE*fi=fopen("2sec.out", "w");
fprintf(fi,"%d",res);
fclose(fi);
}
int main(){
inputFunc();
int sum,lst;
sum=pro[0];din1[0]=sum;lst=sum;
for(int i=1; i<n; i++){
if(sum>0){
sum=pro[i];
}else{
sum+=pro[i];
}
if(sum<lst)
lst=sum;
din1[i]=lst;
}
sum=pro[n-1];din2[n-1]=sum;lst=sum;
for(int i=n-2; i>=0; i--){
if(sum<0){
sum=pro[i];
}else{
sum+=pro[i];
}
if(sum>lst)
lst=sum;
din2[i]=lst;
}
res=din2[2]-din1[1];
for(int i=3; i<n; i++){
int c=din2[i]-din1[i-1];
if(c>res)res=c;
}
outputFunc();
return 0;
}