rt,感觉写的也没啥问题啊,但就是不过。应该是第二问的问题。
#include<bits/stdc++.h>
using namespace std;
priority_queue<int, vector<int>, greater<int>> q;
int main()
{
int k, m;
cin >> k >> m;
//第一问我用了个优先队列去找元素,应该没问题吧
q.push(1);
string s;
for(int i = 1; i <= k; i ++)
{
int t = q.top();
q.pop();
s += to_string(t);
q.push(2 * t + 1);
q.push(4 * t + 5);
}
cout << s << endl;
//第一问到此结束,应该是第二问的问题
int n = s.length();
int cnt = 0;
for(int i = 0; i < n; i ++)
{
if(s[i] < s[i + 1])
{
cnt ++;
s.erase(i, 1);
i --;
}
if(cnt == m) break;
}
cout << s << endl;
return 0;
}