#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n, m; cin >> n >> m; // 初始化原始队列 vector<int> origin_queue(n + 1); for (int i = 1; i <= n; ++i) { origin_queue[i] = i; } // dp数组用于记录每个位置最终的元素,初始化为原始队列 vector<int> dp = origin_queue; // 读取指令 vector<int> instructions(m); for (int i = 0; i < m; ++i) { cin >> instructions[i]; } // 动态规划处理指令 for (int i = 0; i < m; ++i) { int target = instructions[i]; // 记录当前元素在dp数组中的位置 int pos = 0; for (int j = 1; j <= n; ++j) { if (dp[j] == target) { pos = j; break; } } // 将目标元素移到最前面,更新dp数组 for (int k = pos; k > 1; --k) { swap(dp[k], dp[k - 1]); } } // 输出最终队列 for (int i = 1; i <= n; ++i) { cout << dp[i]; if (i < n) { cout << " "; } } cout << endl; return 0; } /************************************************************** Problem: 1527 User: zengdongxin Language: C++ Result: Time Limit Exceed ****************************************************************/