Pagini recente » Cod sursa (job #723858) | Cod sursa (job #25756) | Cod sursa (job #2249787) | Cod sursa (job #3282961) | Cod sursa (job #2924442)
#include <cstdio>
using namespace std;
FILE *fin , *fout;
#define NMAX 6000000
int v[NMAX + 5] , dp[NMAX + 5] , maxim;
int main()
{
fin = fopen("ssm.in" , "r");
fout = fopen("ssm.out" , "w");
int n;
fscanf(fin , "%d" , &n);
int i;
for(i = 1; i <= n; i++)
fscanf(fin , "%d" , &v[i]);
for(i = 1; i <= n; i++)
{
if(dp[i - 1] < 0)
dp[i] = v[i];
else dp[i] = dp[i - 1] + v[i];
}
int ind;
for(i = 1; i <= n; i++)
if(maxim < dp[i])
{
maxim = dp[i];
ind = i;
}
fprintf(fout , "%d " , maxim);
i = ind;
while(i >= 1 and dp[i] >= 0)
i--;
fprintf(fout , "%d %d" , i + 1, ind);
fclose(fin);
fclose(fout);
return 0;
}