<<<<<<< HEAD #include using namespace std; const int N = 2010; int v[N], w[N]; int n, L; int ans = INT_MAX; int f[N][N]; int main() { cin >> n >> L; for (int i = 1; i <= n; i++) cin >> v[i] >> w[i]; for (int i = 1; i <= n; i++) for (int j = 0; j <= L; j++) { f[i][j] = f[i - 1][j]; if (j >= v[i]) f[i][j] = max(f[i][j], f[i - 1][j - v[i]] + w[i]); } for (int j = 0; j <= L; j++) { if (f[n][j] >= L) { ans = j; break; } } if (ans < INT_MAX) cout << ans << endl; else cout << "no solution" << endl; return 0; } ======= >>>>>>> 13071b821300647688be50739c7b6b190b603339