Pagini recente » Cod sursa (job #2487197) | Cod sursa (job #1947546) | Cod sursa (job #2233431) | Cod sursa (job #222778) | Cod sursa (job #2079426)
#include <cstdio>
#include <algorithm>
#define INF 200000
using namespace std;
int v[10001];
int d[1002][10001],d2[1002][10001];
int main()
{
FILE *fin=fopen ("ferma.in","r");
FILE *fout=fopen ("ferma.out","w");
int n,k,i,j,sol;
fscanf (fin,"%d%d",&n,&k);
for (i=1;i<=n;i++)
fscanf (fin,"%d",&v[i]);
k++;
//d[1][1]=v[1];
for (i=1;i<=k;i++)
d2[i][0]=d[i][0]=-INF;
for (i=1;i<=n;i++)
d2[0][i]=d[0][i]=-INF;
sol=0;
for (i=1;i<=k;i++){
for (j=1;j<=n;j++){
d[i][j]=max(d2[i-1][j-1],d[i][j-1])+v[j];
d2[i][j]=max(d2[i][j-1],d[i][j-1]);
if (i==k-1)
sol=max(sol,d[k-1][j]);
}
}
sol=max(d[k][n],sol);
fprintf (fout,"%d",sol);
return 0;
}