//ビームサーチ解 #include #include #include #include #include #define int long long #define rep(i, n) for(i = 0; i < n; i++) using namespace std; int n, K; int a[30]; priority_queue, greater> que[31]; signed main() { int i; cin >> n >> K; rep(i, n) cin >> a[i]; que[0].push(0); rep(i, n) { while (!que[i].empty()) { int x = que[i].top(); que[i].pop(); que[i + 1].push(x); que[i + 1].push(x + a[i]); while (que[i + 1].size() > K) que[i + 1].pop(); } } cout << que[n].top() << endl; return 0; }