PTA数据结构与算法题目集(中文)  7-18

7-18 银行业务队列简单模拟 (25 分)
 

设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。

输入格式:

输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。

输出格式:

按业务处理完成的顺序输出顾客的编号。数字间以空格分隔,但最后一个编号后不能有多余的空格。

输入样例:

8 2 1 3 9 4 11 13 15

输出样例:

1 3 2 9 11 4 13 15
题目分析:一道简单的利用队列的题 没什么需要注意的点 用这些基础题练手后 要学会使用STL 自己手写堆栈 麻烦不说 还可能出错
 #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define Size 1000
int Queue[Size];
int Rear = ;
int Front = ;
int size;
int Succ(int num)
{
if (num == Size)
return ;
else
return num;
}
void EnQueue(int num)
{
Rear = Succ(Rear + );
Queue[Rear] = num;
size++;
}
int DeQueue()
{
int num = Queue[Front];
Front = Succ(Front + );
size--;
return num;
}
int IsEmpty()
{
return size == ;
} int main()
{
int sum,sum1;
int N=, M=;
int A[] = { };
int B[] = { };
scanf("%d", &sum);
sum1 = sum;
while (sum--)
{
int num;
scanf("%d", &num);
if (num % )
A[N++] = num;
else
B[M++] = num;
}
int i = , j = ;
while (i<N||j<M)
{
for(int k=;k>&&i<N;k--)
{
EnQueue(A[i]);
i++;
}
if (j<M)
{
EnQueue(B[j]);
j++;
}
}
int Flag = ;
while (!IsEmpty())
{
if (Flag == sum1 - )
break;
printf("%d ", DeQueue());
Flag++;
}
printf("%d", DeQueue());
return ;
}

最新文章

  1. Linux下的压缩和解压缩命令——tar
  2. Maven 学习-入门
  3. jQuery .css color 重写 :hover样式没了
  4. STM32L系列单片机内部EEPROM的读写
  5. Yii2.0学习笔记:第一个页面Saying Hello
  6. LeetCode----8. String to Integer (atoi)(Java)
  7. 2016年象行中国(上海站)圆满结束,会议PPT分享
  8. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q111-Q114)
  9. RMI、RPC、SOAP通信技术介绍及比对
  10. 十大流行Linux发行版
  11. C++的4种编程范型
  12. Android 自定义seekbar中,thumb被覆盖掉一部分问题
  13. C语言学习笔记(一):数组传递时退化为指针
  14. 在Java控制台模拟dos命令下操作MySQL
  15. Android导出jar包后的资源使用问题
  16. css ie6最小高度问题
  17. Swift 2.2 最基本的多线程
  18. [HDU - 5170GTY&#39;s math problem 数的精度类
  19. qt creator 中的&quot;提升为...&quot;功能简介
  20. 消费阿里云日志服务SLS

热门文章

  1. xadmin安装和配置
  2. Protocol buffers编写风格指南
  3. golang sms阿里云发送短信(公司实际项目)
  4. Django中使用CORS实现跨域请求
  5. js小数计算引起的精度误差问题
  6. 分布式框架Celery(转)
  7. springBoot启动后 http://localhost:8080 地址无法访问
  8. 浅谈CSRF(跨站请求伪造)攻击方式
  9. ArrayList,HashSet,SortedSet之间的区别是什么?
  10. JSP+Servlet+JDBC+Mysql实现的天才会议管理系统