Pagini recente » Cod sursa (job #1203395) | Cod sursa (job #898156) | Cod sursa (job #322867) | Cod sursa (job #2852209) | Cod sursa (job #2813374)
#include <stdio.h>
int main() {
FILE *fin, *fout;
fin = fopen("ssm.in", "r");
fout = fopen("ssm.out", "w");
int n, start, finish, i, sum, k, summax, fmax, smax;
fscanf(fin, "%d", &n);
fscanf(fin, "%d", &k);
sum = k;
start = 1;
finish = 1;
summax = k;
smax = 1;
fmax = 1;
for (i=1; i<n; i++) {
fscanf(fin, "%d", &k);
if (sum>=0) {
sum+=k;
finish++;
} else {
sum = k;
start = i+1;
finish = i+1;
}
if (summax==sum) {
if (smax==start) {///indicele minim
if (fmax-smax>finish-start) {///lungimea minima
smax = start;
fmax = finish;
}
}
} else if (summax<sum) {///actualizarea sumei maxime
summax = sum;
smax = start;
fmax = finish;
}
}
fprintf(fout, "%d %d %d\n", summax, smax, fmax);
fclose(fin);
fclose(fout);
return 0;
}