Pagini recente » Cod sursa (job #560917) | Cod sursa (job #1585992) | Cod sursa (job #1390545) | Cod sursa (job #3137339) | Cod sursa (job #413560)
Cod sursa(job #413560)
#include<fstream>
using namespace std;
const char iname[]="ferma.in";
const char oname[]="ferma.out";
const int maxn=10005;
ifstream f(iname);
ofstream g(oname);
int a[maxn],s[maxn],j,n,dp[2][maxn],maxs,k,i,maxt;
int main()
{
f>>n>>k;
for(i=1;i<=n;++i)
f>>a[i],s[i]=s[i-1]+a[i];
++k;
for(i=0;i<=n;++i)
dp[1][i]=s[i];
for(i=2;i<=k;++i)
{
maxt=dp[i-1&1][j];
maxs=maxt-s[i-2];
for(j=i-1;j<=n;++j)
dp[i&1][j]=maxs+s[j],maxt=max(maxt,dp[i-1&1][j]),maxs=max(maxs,maxt-s[j]);
}
g<<max(dp[k&1][n],0)<<"\n";
f.close();
g.close();
return 0;
}