题目就是考察一个循环队列。
#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;
}

|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|
公告
决定从线程开始!!
常用链接
留言簿(6)
随笔档案
搜索
最新评论

阅读排行榜
评论排行榜
|
|