Cod sursa(job #798433)
#include<stdio.h>
#define MAX 6000001
int n,best[MAX],sol,p[MAX];
FILE *fin,*fout;
void citire()
{
fin=fopen("ssm.in","r");
fscanf(fin,"%d",&n);
p[0]=1;
int x;
for(int i=1;i<=n;i++)
{
fscanf(fin,"%d",&x);
if(x+best[i-1]>x)
{
best[i]=x+best[i-1];
p[i]=p[i-1];
}
else
{
best[i]=x;
p[i]=i;
}
}
}
void maxim()
{
for(int i=1;i<=n;i++)
{
if(best[i]>best[sol])
sol=i;
if(best[i]==best[sol] && i<sol)
sol=i;
}
}
void afisare()
{
fout=fopen("ssm.out","w");
fprintf(fout,"%d %d %d",best[sol],p[sol],sol);
}
int main()
{
citire();
maxim();
afisare();
return 0;
}