//题目提示用队列来解题,但是其实不用 //要的是一个数组储存优先值,优先值最大的元素使用后赋值为0,不必用队列来删除它 //循环直到 MyJobPosition 成为优先值最大的元素,使用它,然后退出循环,打印time // #include<iostream> #include<queue> using namespace std; const int maxn=105; int jobs[maxn]; int main (){ int c; cin>>c; while(c--){ int num,mjpos,flag,time=0; cin>>num>>mjpos; for(int i=0;i<num;i++) cin>>jobs[i]; for(int i=0;;i++){ if(i==num) /*如果循环到数组边界了,从头再来*/ i=0; flag=1; for(int j=i+1;j!=i;j++) { if(j==num) { j=-1; continue; /*循环查找是否为优先值最大的元素*/ } if(jobs[j]>jobs[i]) {flag=0;break;} } if(flag) { time++; jobs[i]=0; if(i==mjpos) break; } } cout<<time<<endl; } return 0; }