提交时间:2024-03-02 08:36:47
运行 ID: 133619
#include <iostream> #include <string> using namespace std; string n; int r; string min(string a, string b) { if(a.size() < b.size()) return a; else if(a.size() > b.size()) return b; for(int i = 0; i < a.size(); i++) {if(a[i] < b[i]) return a; else if(b[i] < a[i]) return b;} return a; } void remove(string n, int step) { if(step > r) {cout << n << endl; return;} int len = n.size(); string minn = n; for(int i = 0; i < len; i++) { string t = n.substr(0, i) + n.substr(i + 1, len); minn = min(minn, t); } n = minn; remove(n, step + 1); } int main() { cin >> n >> r; int len = n.size(); remove(n, 1); return 0; }