#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); } |
English