#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n, m; cin >> n >> m; vector<int> seq(n); for (int i = 0; i < n; ++i) { seq[i] = i + 1; } vector<int> commands(m); for (int i = 0; i < m; ++i) { cin >> commands[i]; } // 按照指令倒序处理 for (int i = m - 1; i >= 0; --i) { int target = commands[i]; // 找到要移到最前面的元素在当前序列中的位置 auto it = find(seq.begin(), seq.end(), target); if (it!= seq.end()) { int pos = it - seq.begin(); // 将该元素移到序列最前面 rotate(seq.begin(), it, it + 1); } } for (int num : seq) { cout << num << " "; } cout << endl; return 0; } /************************************************************** Problem: 1527 User: zhuangsongyu Language: C++ Result: Time Limit Exceed ****************************************************************/