比赛 聪明的工作员 评测结果 AAAAAAAAAAAT
题目名称 丑数 最终得分 91
用户昵称 cdcq 运行时间 1.382 s
代码语言 C++ 内存使用 1.15 MiB
提交时间 2017-03-21 20:46:27
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<set>
using namespace std;
#define ll long long
const ll oo=1684300900000LL;
ll rd(){ll z=0,mk=1;  char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')mk=-1;  ch=getchar();}
	while(ch>='0'&&ch<='9'){z=(z<<3)+(z<<1)+ch-'0';  ch=getchar();}
	return z*mk;
}
set<ll> ovo;
ll n,m,a[110];
ll q[110000],hd=0;
ll tp[110];
ll sch(){
	ll mn=oo;
	for(int i=1;i<=n;++i){
		while(ovo.count(a[i]*q[tp[i]]))  ++tp[i];
		mn=min(mn,a[i]*q[tp[i]]);
	}
	ovo.insert(mn),q[++hd]=mn;
	return mn;
}
int main(){
	//freopen("ddd.in","r",stdin);
	freopen("humble.in","r",stdin);
	freopen("humble.out","w",stdout);
	memset(tp,0,sizeof(tp));
	cin>>n>>m;
	for(int i=1;i<=n;++i)  a[i]=rd();
	q[0]=1;  ll tmp;
	for(int i=1;i<=m;++i)	tmp=sch();
	cout<<tmp<<endl;
	return 0;
}