C++代码: humble.cpp
01 /*
02 ID:xpycc1
03 PROG:humble
04 LANG:C++
05 */
06
07 #include <fstream>
08
09 #define MAXN 100000
10 #define MAXK 100
11 using namespace std;
12
13 ifstream fin("humble.in");
14 ofstream fout("humble.out");
15
16 long n,k,s[MAXK],sindex[MAXK],hum[MAXN+1]; //所有字符s表示prime的集合
17
18 int main(){
19 long i,nn,min,pmin;
20 fin>>k>>n;
21 for(i=0;i<k;++i){
22 fin>>s[i];
23 sindex[i]=0;
24 }
25 hum[0]=1; nn=0;
26 while(nn<=n){
27 min=0x7FFFFFFF; pmin=-1;
28 for(i=0;i<k;++i){
29 while((double)s[i]*hum[sindex[i]]<=hum[nn])
30 sindex[i]++;
31 if((double)s[i]*hum[sindex[i]]<min){
32 min=s[i]*hum[sindex[i]];
33 pmin=i;
34 }
35 }
36 hum[++nn]=min;
37 sindex[pmin]++;
38 }
39 fout<<hum[n]<<endl;
40 return 0;
41 }