Blah数集 OpenJ_Bailian - 3728
用两个队列分别储存2a+1和3a+1,保证两个队列递增,拿对头比大小,扩展小的数,再把2a+1与3a+1加入队列,直至第n个数
#include<cstdio>
#include<iostream>
#include<queue>
using namespace std;
int main(){
int a,n;
while(~scanf("%d%d",&a,&n)){
queue<int> q1,q2;
int k=1;
while(k<n){
q1.push(a*2+1);
q2.push(a*3+1);
if(q1.front()<q2.front()){
a=q1.front();
q1.pop();
}
else if(q1.front()>q2.front()){
a=q2.front();
q2.pop();
}
else{
a=q1.front();
q1.pop();
q2.pop();
}
k++;
}
printf("%d\n",a);
}
return 0;
}