不是很能理解为什么会MLE。
在第四个点中优先队列的空间消耗为88MB倒是真的
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
typedef pair<ull,int> node;
ull S[107] = {1};
priority_queue<node,vector<node>,greater<node> > Q;
int main()
{
Q.push(node(1,1));
int k,num;
cin>>k>>num;
for(register int i=1;i<=k;i++)
{
cin>>S[i];
}
sort(S,S+k+1,less<ull>());
for(int i=0;i<=num;i++)
{
node tempnode = Q.top();
Q.pop();
if(i==num){
cout<<tempnode.first;
break;
}
for(int j=tempnode.second;j<=k;j++)
Q.push(node(tempnode.first*S[j],j));
}
return 0;
}