#include<bits/stdc++.h> using namespace std; typedef long long ll; ll p[100]; ll n; ll finds(ll s, int i, int k, ll m) { ll res = s; for(; i < k; i++) { if(m/p[i] >= 1) { res = max(res, finds(s*p[i], i, k, m/p[i])); } } return res; } int main() { ios_base::sync_with_stdio(0); int k; cin >> k >> n; for(int i=0; i < k; i++) { cin >> p[i]; } cout << finds(1, 0, k, n); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include<bits/stdc++.h> using namespace std; typedef long long ll; ll p[100]; ll n; ll finds(ll s, int i, int k, ll m) { ll res = s; for(; i < k; i++) { if(m/p[i] >= 1) { res = max(res, finds(s*p[i], i, k, m/p[i])); } } return res; } int main() { ios_base::sync_with_stdio(0); int k; cin >> k >> n; for(int i=0; i < k; i++) { cin >> p[i]; } cout << finds(1, 0, k, n); return 0; } |