#include #include #include int minPos(int* array, int start, int end) { int min = array[start]; int result = start; for (int i=start+1; i < end; i++) { if (min > array[i]) { min = array[i]; result = i; } } return result; } int maxPos(int* array, int start, int end) { int max = array[start]; int result = start; for (int i=start+1; i < end; i++) { if (max < array[i]) { max = array[i]; result = i; } } return result; } void printArray(int* array, int n) { printf("\n"); for (int j=0; j< n; j++) printf("%d ", array[j]); printf("\n"); } int main(int argc, char** argv) { FILE *fin = fopen("input.txt", "r"); int n,k; fscanf(fin, "%d ", &n); fscanf(fin, "%d\n", &k); int temp; int* vett = (int*) malloc(n*sizeof(int)); int* vettScan = (int*) malloc((n+1)*sizeof(int)); for (int i=0; i< n; i++) { fscanf(fin, "%d ", &temp); vett[i] = temp; } fclose(fin); //printArray(vett, n); vettScan[0] = 0; // temp = (vettScan[i] = temp + vett[i-1]) for (int i=1; i < n+1; i++) vettScan[i] = vettScan[i-1] + vett[i-1]; //printArray(vettScan, n+1); int min = minPos(vettScan, 0, n - k); int max = maxPos(vettScan, min, n); int result = vettScan[max] - vettScan[min]; //printf("\n %d\n", result); FILE *fout = fopen("output.txt", "w"); fprintf(fout, "%d", result); fclose(fout); }