Pagini recente » Cod sursa (job #2300171) | Cod sursa (job #1303144) | Cod sursa (job #2731608) | Cod sursa (job #2666365) | Cod sursa (job #652329)
Cod sursa(job #652329)
#include <cstdio>
void swap(int &a,int &b){
int c;
c=a;
a=b;
b=c;
}
int a[6000005],sc[6000005],sd[6000005];
int main(){
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
int n,i,lg,SMAX=-99999999,S,pr,ult,j,lgmin=99999999;
scanf("%d",&n);
for(i=1;i<=n;++i){
scanf("%d",&a[i]);
sc[i]=a[i];
sd[i]=a[i];
sc[i]=sc[i]+sc[i-1];
}
for(i=n-1;i>=1;--i)
sd[i]=sd[i]+sd[i+1];
for(i=1;i<=n;++i)
for(j=i+1;j<=n;++j){
S=sd[i]-sd[j];
if(j>i)
lg=j-i+1;
else
lg=i-j+1;
if(S>SMAX){
SMAX=S;
if(i<j){
pr=i;
ult=j-1;
lgmin=lg;
}
else{
pr=j;
ult=i-1;
lgmin=lg;
}
}
else
if(S==SMAX&&lg<lgmin){
SMAX=S;
if(i<j){
pr=i;
ult=j;
lgmin=lg;
}
else{
pr=j;
ult=i;
lgmin=lg;
}
}
}
for(i=1;i<=n;++i){
printf("%d ",sc[i]);
}
printf("\n");
for(i=1;i<=n;++i)
printf("%d ",sd[i]);
printf("\n");
//if(ult==n-1)
//++ult;
printf("%d %d %d",SMAX,pr,ult);
}