Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- #define MAXN 125
- int N, M, v[MAXN];
- int menor_maneira;
- int calc = 0;
- void consegue(int obj, int value, int count) {
- if (value == M) {
- menor_maneira = min(menor_maneira, count);
- return;
- }
- if (obj > N)
- return;
- if (value > M)
- return;
- cout << obj << " " << value << " " << count << endl;
- consegue(obj+1, value, count);
- for (int i = 1; (i*v[obj]+value) <= M; i++)
- consegue(obj+1, i*v[obj]+value, count+i);
- }
- int main() {
- int t;
- cin >> t;
- while (t--) {
- int n, m;
- cin >> n >> m;
- for (int i = 1; i <= n; i++)
- cin >> v[i];
- menor_maneira = 1<<20;
- N = n;
- M = m;
- consegue(1, 0, 0);
- cout << menor_maneira << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement