#include #include #include using namespace std; int main() { int N, K; cin >> N >> K; vector A(N); vector B(N); vector C(N); for (int i = 0; i < N; i++) { cin >> A[i]; } for (int i = 0; i < N; i++) { cin >> B[i]; } for (int i = 0; i < N; i++) { cin >> C[i]; } vector> DP(K + 1, vector(N, 0)); DP[0][0] = A[0] + C[0]; DP[1][0] = A[0] + B[0]; for (int i = 1; i < N; i++) { DP[0][i] = DP[0][i - 1] + A[i] + C[i]; } for (int k = 1; k <= K; k++) { for (int n = 1; n < N; n++) { int tare = (DP[k][n - 1] != 0) ? DP[k][n - 1] + A[n] + C[n] : 0; int sio = (DP[k - 1][n - 1] != 0) ? DP[k - 1][n - 1] + A[n] + B[n] : 0; DP[k][n] = max(tare, sio); } } cout << DP[K][N - 1] << endl; return 0; }