求第N个大的数那就排着乘,一直乘到第N个大的数就好了
#include<cstdio>
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
freopen("humble.in","r",stdin);
freopen("humble.out","w",stdout);
int n,k,j,num[101],index[101],min,max,tail=0;
long long hum[100001];//存储正整数集合
cin>>k>>n;
for(int i=1;i<=k;i++)
cin>>num[i];
for(int i=1;i<=k;i++)
index[i]=0;//记录每个数向前走的记录
hum[0]=1;
while(n)
{
min=2147483647;
for(int i=1;i<=k;i++)
{
j=index[i];
while(num[i]*hum[j]<=hum[tail])
j++;
index[i]=j;
if(num[i]*hum[j]<min)
min=num[i]*hum[j];
}
hum[++tail]=min;
n--;
}
cout<<hum[tail]<<endl;
return 0;
}