#include <cstdio> long long int rek(long long int a, int k, long long int *t, long long mnoz){ long long int max=mnoz; long long int tmp=1; for(int i=0; i < k; ++i){ if(a >= t[i]){ tmp=rek(a/t[i],k,t,t[i]*mnoz); } if(tmp > max) max=tmp; } return max; } int main(){ long long int n,x; int k; scanf("%d %lld", &k, &n); long long int t[k]; for(int i=0; i < k; ++i){ scanf("%lld", &x); t[i]=x; } long long int max=rek(n,k,t,1); printf("%lld", max); }
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 | #include <cstdio> long long int rek(long long int a, int k, long long int *t, long long mnoz){ long long int max=mnoz; long long int tmp=1; for(int i=0; i < k; ++i){ if(a >= t[i]){ tmp=rek(a/t[i],k,t,t[i]*mnoz); } if(tmp > max) max=tmp; } return max; } int main(){ long long int n,x; int k; scanf("%d %lld", &k, &n); long long int t[k]; for(int i=0; i < k; ++i){ scanf("%lld", &x); t[i]=x; } long long int max=rek(n,k,t,1); printf("%lld", max); } |