刚A完图书系统那道题,然后看提交次数那个字典的比这道题多,看了看那道更新字典没有思路,就看了这道题,感觉这道题比更新字典简单多了。
#include<iostream> #include<queue> #include<map> using namespace std; int main() { int cases; cin >> cases; while(cases--) { int n, m, times = 0; map<int, int> order_level; queue<int> print_list; priority_queue<int, vector<int> > level_list; cin >> n >> m; for(int i = 0; i < n; i++) { int x; cin >> x; order_level[i] = x; print_list.push(i); level_list.push(x); } while(1) { if(order_level[print_list.front()] == level_list.top()) { times++; if(print_list.front() == m) break; print_list.pop(); level_list.pop(); } else { print_list.push(print_list.front()); print_list.pop(); } } cout << times << endl; } return 0; }