Pagini recente » Cod sursa (job #1867391) | Cod sursa (job #1189070) | Cod sursa (job #1552229) | Cod sursa (job #1340215) | Cod sursa (job #1618067)
#include <iostream>
#include <cstdio>
#define NMAX 5001
#define inFile "joc.in"
#define outFile "joc.out"
#define INF 1<<30
using namespace std;
int n, k, suma, maxi, w[2][NMAX], vec[2][NMAX];
int main() {
FILE *fin, *fout;
fin = fopen(inFile, "r");
fscanf(fin, "%d %d", &n, &k);
for(int i = 0; i < 2; ++i)
for(int j = 0; j < n; ++j)
fscanf(fin, "%d" , &w[i][j]);
vec[0][0] = w[0][0]; vec[1][0]=0;
for(int i = 1; i < n; ++i)
for(int j = 0; j < 2; ++j)
{
maxi = -INF;
suma = w[j][i];
for(int p = 1; p < k && p <=i; ++p) {
suma += w[j][i-p];
if(suma + vec[1-j][i-p] > maxi)
maxi = suma + vec[1-j][i-p];
}
vec[j][i] = maxi;
}
fout = fopen(outFile, "w");
if(vec[0][n-1] + w[1][n-1] > vec[1][n-1])
vec[1][n-1] = vec[0][n-1] + w[1][n-1];
fprintf(fout, "%d", vec[1][n-1]);
}