提交时间:2026-10-29 12:55:30

运行 ID: 43358

#include <bits/stdc++.h> using namespace std; #define int long long int t,n,m,a[25],b[25],p,ans; void dfs(int x,int k){ if (x==0){ p = min(p,k-1); ans = p; return ; } if (k>p) return ; for (int i=1; i<=n; i++){ if (b[i]==0&&x>=a[i]){ b[i] = 1; dfs(x%a[i],k+1); b[i] = 0; } } } signed main(){ cin >> t; while (t--){ cin >> n >> m; for (int i=1; i<=n; i++) cin >> a[i]; p = n; ans = -1; dfs(m,1); cout << ans << endl; } return 0; }