Pagini recente » Cod sursa (job #748129) | Cod sursa (job #2197204) | Cod sursa (job #2582320) | Cod sursa (job #3122306) | Cod sursa (job #1686277)
#include<stdio.h>
#include <limits.h>
FILE *fin,*fout;
int n,i,x,v[6000001],start,endmax,startmax, xmax,ind;
long long smaxim,sbynow;
int main()
{
fin=fopen("ssm.in","r");
fout=fopen("ssm.out","w");
fscanf(fin,"%d\n",&n);
for(i=1;i<=n;i++)
{
fscanf(fin,"%d ",&v[i]);
}
smaxim=0;
sbynow=0;
xmax=INT_MIN;
for(i=1;i<=n;i++)
{
if(v[i]<0 && v[i]>xmax)
{
xmax=v[i];
ind=i;
}
x=v[i]+sbynow;
if(x<0){x=0; start=0;}
else if (x>=0){
if (start==0){start=i;}
}
sbynow=x;
if(sbynow>smaxim){
smaxim=sbynow;
startmax=start;
endmax=i;
}
else if(smaxim==sbynow)
{
int l1, l2;
l1=endmax-startmax+1;
l2=i-start+1;
if(l2<l1){endmax=i; startmax=start;}
}
}
if (smaxim==0){fprintf(fout,"%d %d %d",xmax,ind,ind);}
else fprintf(fout,"%lld %d %d",smaxim,startmax,endmax);
return 0;
}