#include #include #include #include #include #include #include using namespace std; #define FOR(x,y) for(int x = 0;x < y;x++) #define LLI long long int template class UF { public: vector par,rank,cnt; UF() {par=rank=vector(um,0); cnt=vector(um,1); for(int i=0;irank[y]) return par[x]=y; rank[x]+=rank[x]==rank[y]; return par[y]=x; } }; int N,M; int W[5000]; int dp[3][3][3030][3030]; void solve() { cin>>N>>M; FOR(i,N) cin>>W[i]; memset(dp,0xce,sizeof(dp)); dp[0][0][0][0]=dp[1][1][0][1]=0; int ma=-100000000; FOR(r,2) { FOR(i,N-1) { FOR(j,M+1) { dp[r][0][i+1][j]=max(dp[r][0][i][j],dp[r][1][i][j]); if(j) dp[r][1][i+1][j]=max(dp[r][0][i][j-1],dp[r][1][i][j-1]+W[i]); } } ma=max(ma,dp[r][0][N-1][M]); if(r==0) ma=max(ma,dp[r][1][N-1][M]); if(r==1) ma=max(ma,dp[r][1][N-1][M]+W[N-1]); } cout<