#include<bits/stdc++.h>
using namespace std;
int n,k,a[101];
long long x;
priority_queue<long long,vector<long long>,greater<long long> >q;
map<long long,int>vis;
inline int read(){
int sum=0,d=1;
char c=getchar();
for(;!isdigit(c);c=getchar()) d=c=='-'?-d:d;
for(;isdigit(c);c=getchar()) sum=(sum<<3)+(sum<<1)+(c&15);
return sum*d;
}
inline void print(int x){
if(x<0) putchar('-'),x=x^(~(x>>31)+1)+(x>>31);
if(x/10) print(x/10);
putchar(x%10^48);
}
int main(){
n=read(),k=read();
for(register int i(1);i<=n;++i) a[i]=read(),q.push(a[i]);
while(k--){
x=q.top(),q.pop();
for(register int i(1);i<=n;++i) if(!vis[(long long)a[i]*x]){
q.push((long long)a[i]*x),vis[(long long)a[i]*x]=1;
}
}
print(x);
}
这份代码卡常了,各位大佬有什么卡常技巧吗?