Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>#include <algorithm>#include <string>using namespace std;int main() {int n, x;cin >> n >> x;vector<int> a(n + 1, 0);int sum = 0;for (int i = 1; i <= n; ++i) {cin >> a[i];sum += a[i];}if (sum < x) cout << -1 << endl;else {for (int upper = x; upper <= sum; ++upper) {vector<vector<int>> dp(n + 1, vector<int>(upper + 1, 0));for (int i = 1; i <= n; ++i) {for (int j = 0; j <= upper; ++j) {dp[i][j] = dp[i - 1][j];if (j >= a[i]) dp[i][j] = max(dp[i][j], dp[i - 1][j - a[i]] + a[i]);}}if (dp[n][upper] >= x) {cout << upper << endl;break;}}}