查询数集求调QAQ*2

#include"bits/stdc++.h"
#define I using
#define AK namespace
#define IOI std
#define i return
#define akioi 0
I AK IOI;
int main(){
  int n,x;
  while(cin>>x>>n){
    int cnt=0,ans;
    queue<int> q1,q2;
    q1.push(x);
    q2.push(x);
    while(cnt<=n){
      if(q1.front()>q2.front()){
        ans=q1.front();
        q1.pop();
      }
      else if(q2.front()>q1.front()){
        ans=q2.front();
        q2.pop();
      }
      else{
        ans=q1.front();
        q1.pop();
        q2.pop();
      }
      ++cnt;
      if(cnt==n) printf("%d ",ans);
      q1.push(ans*2+1);
      q2.push(ans*3+1);
    }
  }
  i akioi;
}

为何WA求调

题面

查询数集

题目ID:9601

时间限制: 1000ms

空间限制: 524288kB

题目描述

时间限制:1s 空间限制:512M

题目描述:

大数学家高斯小时候偶然间发现一种有趣的自然数集合 BB,对于以 aa 为基的集合 BB 定义如下:

  • a 是集合 B 的基,且 a 是 B 的第一个元素;
  • 如果 x 在集合 B 中,则 2x+1 和 3x+1 也都在集合 B 中;
  • 没有其他元素在集合 B 中了。

现在小高斯想知道如果将集合 B 中元素按照升序排列,第 n 个元素会是多少?

输入格式:

输入若干行,每行输入包括两个数字,集合的基 a(1≤a≤50) 以及所求元素序号 n(1≤n≤1000000)

输出格式:

对于每个输入,输出集合 B 的第 n 个元素值,以单个空格隔开。

样例输入:

1 100 28 5437

样例输出:

418 900585