Pagini recente » Cod sursa (job #1892237) | Cod sursa (job #2472967) | Cod sursa (job #1713881) | Istoria paginii runda/o-n_logan | Cod sursa (job #1890884)
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
void readArray(int *v, int N, FILE *in){
for(int i = 0; i < N; i++){
fscanf(in, "%d", v + i);
}
}
void printArray(int *v, int N){
for(int i = 0; i < N; i++){
printf("%d ", v[i]);
}
printf("\n");
}
void MaxSumSeq(int *v, int N, FILE *out){
//printf("Am ajuns aici");
int finalSum = INT_MIN, tempSum = 0, start = 0, finish = 0;
/* finalSum = suma finala
* tempSum = suma pana la fiecare element din vector
*/
for(int i = 0; i < N; i++){
tempSum += v[i];
if(finalSum < tempSum){
finish = i;
finalSum = tempSum;
}
if(tempSum < 0){
start = i;
tempSum = 0;
}
}
for(int i = start + 1; i < finish + 1; i++){
fprintf(out, "%d ", v[i]);
}
}
int main(){
FILE *in, *out;
int N, v[600];
in = fopen("ssm.in", "r");
out = fopen("ssm.out", "w");
fscanf(in, "%d", &N);
readArray(v, N, in);
//printArray(v, N);
MaxSumSeq(v, N, out);
fclose(in);
fclose(out);
return 0;
}