Pagini recente » Cod sursa (job #3289733) | Cod sursa (job #153376) | Cod sursa (job #162129) | IAP #2: Concurs pentru studenti | Cod sursa (job #267425)
Cod sursa(job #267425)
#include <stdio.h>
#define DIM 6000002
int v[DIM],S[DIM];
int n,i,max,begin,end,ibegin,iend;
// S[i] = vectorul de sume partiale
// complexitatea O(n)
int main(){
FILE *f = fopen("ssm.in", "r");
FILE *g = fopen("ssm.out", "w");
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
S[1] = v[1];
max = v[1];
begin = 1;
end = 1;
for (i=2; i<=n; i++) {
if (S[i-1] + v[i] >= v[i]) {
S[i] = S[i-1] + v[i];
end = i;
}
else {
S[i] = v[i];
begin = i;
end = i;
}
if (max < S[i]) {
max = S[i];
ibegin = begin;
iend = end;
}
}
fprintf(g,"%d %d %d\n",max,ibegin,iend);
fclose(f);
fclose(g);
return 0;
}