hehe......
这道题目不得不说很经典!竟害我想了一下午!
这次不想写注释了,呵呵。。。
代码如下:
/* ID: guo geer PROG: humble LANG: C++ */ #include<iostream> #include<fstream> using namespace std; const int N = 100000; int number[N]; int prime[100], p[100]; int main() { ifstream fin("humble.in"); ofstream fout("humble.out"); int i,j; int k,n; while(fin>>k>>n) { for(i=0; i<k; i++) fin>>prime[i]; j = 0; for(i=1; i<k; i++) if(prime[i] < prime[j]) j = i; for(i=0; i<k; i++) p[i] = -1; number[0] = prime[j]; p[j] = 0; for(i=1; i<n; i++) { int m = 2000000000; for(j=0; j<k; j++) if(p[j] == -1 && m > prime[j]) m = prime[j]; else if(p[j] != -1 && m > number[p[j]]*prime[j]) m = number[p[j]]*prime[j]; for(j=0; j<k; j++) if(p[j] == -1 && m == prime[j]) p[j] ++; else if(p[j] != -1 && m == number[p[j]]*prime[j]) p[j] ++; number[i] = m; } fout<<number[n-1]<<endl; } return 0; }