题目就是考察一个循环队列。
#include <stdio.h>

int queue[105];
int len,head;

void setq(int n)
{
    
int i;
    len 
= n;
    head 
= 0;
    
for(i=0;i<len;i++)
    
{
        scanf(
"%d",&queue[i]);
    }

}


int max()
{
    
int i,m = queue[head],p=(head+1)%len,m_i=head;
    
for(i=1;i<len;i++)
    
{
        
if(queue[p]>m)
        
{
            m 
= queue[p];
            m_i 
= p;
        }

        p 
= (p+1)%len;
    }

    
return m_i;
}


int outq()
{
    
int a;
    head 
= max();
    a 
= head;
    queue[head] 
= -1;
    head 
= (head+1)%len;
    
return a;
}


int main()
{
    
int i,count;
    
int T,N,M;
    scanf(
"%d",&T);
    
for(i=0;i<T;i++)
    
{
        scanf(
"%d%d",&N,&M);
        setq(N);
        count 
= 1;
        
while(outq()!=M)    count ++;
        printf(
"%d\n",count);
    }

    
return 0;
}