复制代码
 1

 


#include <bits/stdc++.h> 2 using namespace std; 3 using LL = long long; 4 const int N = 1e7 + 9; 5 int a[100]; 6 bool vis[N]; 7 int n, x; 8 int res = (1 << 31) - 1; 9 void solve(int now,int k) { 10 if (vis[now]||k==n+1) return; 11 vis[now] = 1; 12 res = min(res, now); 13 for (int i = k+1; i <= n; i++) { 14 if (!vis[now % a[i]]) { 15 solve(now % a[i], i); 16 vis[now % a[i]] = 1; 17 res = min(res, now % a[i]); 18 } 19 } 20 } 21 int main() { 22 23 24 cin >> n >> x; 25 for (int i = 1; i <= n; i++) { 26 cin >> a[i]; 27 } 28 sort(a + 1, a + n + 1, [&](int i, int j) {return i > j; }); 29 for(int i=1;i<=n;i++) 30 solve(x%a[i], i); 31 cout << res << '\n'; 32 return 0; 33 }
复制代码