题目就是考察一个循环队列。
#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; }
|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
30 | 31 | 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 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|
公告
决定从线程开始!!
常用链接
留言簿(6)
随笔档案
搜索
最新评论
阅读排行榜
评论排行榜
|
|