Pagini recente » Cod sursa (job #997806) | Cod sursa (job #913267) | Cod sursa (job #2306825) | Cod sursa (job #2524272) | Cod sursa (job #2551903)
#include <bits/stdc++.h>
#define INF -1000
using namespace std;
ifstream fin("joc4.in");
ofstream fout("joc4.out");
const int lmt = 5e3+4;
int table[2][lmt];
int dp[2][lmt][12];
int n,k;
void citire()
{
fin>>n>>k;
for(int i=0;i<2;++i)
{
for(int j=1;j<=n;++j)
{
fin>>table[i][j];
}
}
}
int main()
{
citire();
dp[0][1][1] = table[0][1];
dp[1][1][1] = table[1][1] + table[0][1];
for(int i = 2; i<=n;++i)
{
for(int j = 0;j<2;++j)
{
for(int q = 2; q<=k;++q)
{
if(q>i)
break;
dp[j][i][q] = dp[j][i - 1][q - 1] + table[j][i];
}
}
for(int j=0; j<2;++j)
{
int maxval = INF;
for(int q=2;q<=k;++q)
{
if(q>i)
break;
maxval = max(maxval, dp[1-j][i][q]);
}
dp[j][i][1]=maxval + table[j][i];
}
}
int maxval = INF;
for(int q=1;q<=k;++q)
{
maxval = max(dp[1][n][q], maxval);
}
fout<<maxval<<endl;
return 0;
}