Pagini recente » Cod sursa (job #3131214) | Cod sursa (job #1126929) | Cod sursa (job #588700) | Cod sursa (job #1769117) | Cod sursa (job #2029550)
#include <cstdio>
#include <iostream>
using namespace std;
FILE *fin=fopen("ssm.in","r"),*fout=fopen("ssm.out","w");
int main(){
int n,v[60000]={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 %d %d",max,pozmax,pozmax);
}
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 %d %d",max2-min,pozmin+2,pozmax2+1);
}
else{
fprintf(fout,"%d %d %d",max-min2,pozmin2+2,pozmax+1);
}
}
return 0;
}