题目链接:丑数(Humble Numbers) - 题目 - Liuser's OJ
因为题目要文件,请其他人提交时注释掉两行freopen
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <set>
#define siji(i,x,y) for(int i=(x);i<=(y);++i)
#define gongzi(j,x,y) for(int j=(x);j>=(y);--j)
#define xiaosiji(i,x,y) for(int i=(x);i<(y);++i)
#define sigongzi(j,x,y) for(int j=(x);j>(y);--j)
#define inf 0x7fffffff
#define MAXN 100005
#define ivorysi
using namespace std;
typedef long long ll;
set<int> s;
int n,k,pri[105];
void solve() {
scanf("%d%d",&k,&n);
siji(i,1,k) {scanf("%d",&pri[i]);s.insert(pri[i]);}
siji(i,1,k){
set<int>::iterator k=s.begin();
while(1) {
int tm=(*k)*pri[i];
if(tm<0) break;
if(s.size()>n) {
s.erase(--s.end());
if(tm>(*--s.end()))
break;
}
s.insert(tm);
++k;
}
}
printf("%d\n",*(--s.end()));
}
int main(int argc, char const *argv[])
{
#ifdef ivorysi
freopen("humble.in","r",stdin);
freopen("humble.out","w",stdout);
#endif
solve();
}