rt
源代码
#include<bits/stdc++.h>
using namespace std;
priority_queue<int,vector<int>,greater<int> > q;
int arr[110];
map<int,int> mp;
int main(){
int n,k,now;
cin>>k>>n;
for(int i=1;i<=k;i++){
cin>>arr[i];
q.push(arr[i]);
mp[arr[i]]=1;
}
for(int i=1;i<=n && !q.empty();i++){
int temp=q.top();
q.pop();
while(temp==q.top()){
q.pop();
}
int flag;
for(int j=1;j<=k;j++){
if(temp%arr[j]==0){
flag=arr[j];
break;
}
}
for(int j=flag;j<=k;j++){
if(arr[j]*temp==6){
cout<<1;
}
q.push(temp*arr[j]);
}
q.push(temp);
}
for(int i=1;i<n;i++){
// cout<<q.top()<<endl;
q.pop();
}
cout<<q.top();
return 0;
}
调试
#include<bits/stdc++.h>
using namespace std;
priority_queue<int,vector<int>,greater<int> > q;
int arr[110];
map<int,int> mp;
int main(){
int n,k,now;
cin>>k>>n;
for(int i=1;i<=k;i++){
cin>>arr[i];
q.push(arr[i]);
mp[arr[i]]=1;
}
for(int i=1;i<=n && !q.empty();i++){
int temp=q.top();
q.pop();
while(temp==q.top()){
q.pop();
}
int flag;
for(int j=1;j<=k;j++){
if(temp%arr[j]==0){
flag=arr[j];
break;
}
}
for(int j=flag;j<=k;j++){
if(arr[j]*temp==6){
cout<<1;
}
q.push(temp*arr[j]);
}
q.push(temp);
}
for(int i=1;i<n;i++){
cout<<q.top()<<endl;
q.pop();
}
cout<<endl<<q.top();
return 0;
}
样例:
4 19
2 3 5 7
正确输出: 27
我的输出: 6
用调试代码看了一眼:
2
3
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6