PAT银行业务简单模拟
2016-07-12 08:53
204 查看
这个题主要需要考虑到两点
当A窗口没人时和当B窗口没人时就可以了
如测试案例2 1 3, 2 2 4
当A窗口没人时和当B窗口没人时就可以了
如测试案例2 1 3, 2 2 4
#include <iostream> #include <cstring> #include <queue> using namespace std; queue<int>a;//A窗口的队列 queue<int>b;//B窗口的队列 int main(){ int n,k; cin>>n; for(int i = 0 ;i < n ;i++){ cin>>k; if(k%2 == 0){ b.push(k);//偶数入B窗口 }else{ a.push(k);//奇数入A窗口 } } bool flag = true; int t = 0; while((a.size() != 0 || b.size() != 0)){//如果两个窗口都为空的话结束循环 if(flag){//首先考虑A的情况 if(a.size() == 0){//如果A是空的额,flag = false不执行下面的步骤 flag = false; continue; } if(a.size() == 1 && b.size() == 0){//如果是最后一个换行 cout<<a.front()<<endl; a.pop(); t++; }else{ cout<<a.front()<<" "; a.pop(); t++; } if(b.size() == 0){//如果b已经空了,那么下一次还是执行A t = 0; flag = true; }else if(t == 2 ){//如果B不为空而且A已经执行2次了,跳到B t = 0; flag = false; } } else{ if(a.size() == 0 && b.size() == 1){ cout<<b.front()<<endl; b.pop(); }else{ cout<<b.front()<<" "; b.pop(); } if(a.size() == 0){//如果A为空,继续执行B flag =false; }else{ flag = true; } } } return 0; }
相关文章推荐
- libdvbpsi源码分析(四)PAT表解析/重建
- PAT配置
- 什么是端口复用动态地址转换(PAT) 介绍配置实例
- MikroTik layer7-protocol
- PAT是如何工作的
- PAT 乙级题:1002. 写出这个数 (20)
- PAT (Advanced Level) Practise 1001-1010
- 数据结构学习与实验指导(一)
- PAT Basic Level 1001-1010解题报告
- PAT 数素数
- PAT 福尔摩斯的约会
- PAT 德才论
- PAT 月饼
- 1001. 害死人不偿命的(3n+1)猜想
- 1002. 写出这个数
- 1032. 挖掘机技术哪家强
- 1001. 害死人不偿命的(3n+1)猜想 (PAT basic)
- 1002. 写出这个数(PAT Basic)
- 1004. 成绩排名(PAT Basic)
- 1006. 换个格式输出整数(PAT Basic)