Pagini recente » Cod sursa (job #1962096) | Cod sursa (job #2072962) | Cod sursa (job #2232718) | Cod sursa (job #3295277) | Cod sursa (job #1075599)
//subsecventa de suma maxima
#include<cstdio>
#define N_MAX 6000000
#define INF 2000000000
using namespace std;
int sum[N_MAX],best[N_MAX];
int N;
inline void Solve_Problem(int N)
{
int Min,Sol,poz,st,dr;
Sol=-INF;
st=0;
dr=0;
sum[0]=0;
Min=sum[0];
poz=1;
for (int i=1;i<=N;++i)
{
best[i]=sum[i]-Min;
if (Min>sum[i])
{
Min=sum[i];
poz=i+1;
}
if (Sol<best[i])
{
Sol=best[i];
st=poz;
dr=i;
}
}
printf("%d %d %d\n",Sol,st,dr);
}
inline void Load_Data()
{
int x;
scanf("%d",&N);
for (int i=1;i<=N;++i)
{
scanf("%d",&x);
sum[i]=sum[i-1]+x;
}
}
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
Load_Data();
Solve_Problem(N);
fclose(stdin);
fclose(stdout);
return 0;
}