Pagini recente » Cod sursa (job #3148550) | Cod sursa (job #454687) | Cod sursa (job #1331081) | Cod sursa (job #2447402) | Cod sursa (job #2028910)
#include <stdio.h>
using namespace std;
FILE *fi=fopen("ssm.in","r");
FILE *fo=fopen("ssm.out","w");
int n,i,X[6000001],BEST[6000001],START[6000001],rez,first,last;
int main()
{
fscanf(fi,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fi,"%d",&X[i]);
BEST[1]=X[1];
START[1]=1;
for(i=2;i<=n;i++)
if(BEST[i-1]+X[i]>=X[i])
{
BEST[i]=BEST[i-1]+X[i];
START[i]=START[i-1];
}
else
{
BEST[i]=X[i];
START[i]=i;
}
rez=BEST[1];
first=1;
last=1;
for(i=1;i<=n;i++)
if(rez<BEST[i])
{
rez=BEST[i];
first=START[i];
last=i;
}
fprintf(fo,"%d %d %d",rez,first,last);
fclose(fi);
fclose(fo);
return 0;
}