Pagini recente » Cod sursa (job #2233834) | Cod sursa (job #2269994) | Cod sursa (job #2949388) | Cod sursa (job #2429526) | Cod sursa (job #269761)
Cod sursa(job #269761)
#include<stdio.h>
#define INPUT "ssm.in"
#define OUTPUT "ssm.out"
#define NMAX 6000001
FILE *fin = fopen(INPUT, "r"), *fout = fopen(OUTPUT, "w");
long N, optim;
long A[ NMAX ];
void readData()
{
fscanf(fin, "%ld", &N);
for(long i = 0; i < N; ++i)
fscanf(fin, "%ld", A+i);
}
void solve()
{
long start = 0, Pmin = 0, Pmax = 0, Foptim;
Foptim = A[ 0 ];
for(long i = 0; i < N; ++i)
{
if((A[ i ] < optim + A[ i ]) && i)
optim += A[ i ];
else
{
optim = A[ i ];
start = i;
}
if(Foptim < optim)
{
Foptim = optim;
Pmin = start;
Pmax = i;
}
}
fprintf(fout, "%ld %ld %ld\n", Foptim, Pmin+1, Pmax+1);
}
int main()
{
readData();
solve();
fclose(fin);
fclose(fout);
return 0;
}