问题描述

试题编号: 201609-2
试题名称: 火车购票
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
  请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。
  假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。
  购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。
  假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。
输入格式
  输入的第一行包含一个整数n,表示购票指令的数量。
  第二行包含n个整数,每个整数p在1到5之间,表示要购入的票数,相邻的两个数之间使用一个空格分隔。
输出格式
  输出n行,每行对应一条指令的处理结果。
  对于购票指令p,输出p张车票的编号,按从小到大排序。
样例输入
4
2 5 4 2
样例输出
1 2
6 7 8 9 10
11 12 13 14
3 4
样例说明
  1) 购2张票,得到座位1、2。
  2) 购5张票,得到座位6至10。
  3) 购4张票,得到座位11至14。
  4) 购2张票,得到座位3、4。
评测用例规模与约定
  对于所有评测用例,1 ≤ n ≤ 100,所有购票数量之和不超过100。

思路

对于每一种购票数量,我们都可以通过遍历数组的每一行检查剩余的座位数是否符合购票数,若符合则从小到大分配座位,若不符合则检查下一行,当所有的行都不满足条件时就要从头到尾遍历整个数组查询空余的座位并将空余的座位从小到大分配。

代码

#include<iostream>
using namespace std;int Carriage[20][5]={0};int main()
{int n;cin>>n;for(int i=0;i<n;i++){int a;cin>>a;bool flag=false;//是否分配的标志 for(int j=0;j<20;j++){int left=0;//每一行的剩余座位数 for(int k=0;k<5;k++)if(Carriage[j][k]==0)left++;if(left>=a)//剩余座位满足要求 {flag=true;int temp=a;for(int k=0;k<5;k++){if(Carriage[j][k]==0){cout<<j*5+k+1<<" ";Carriage[j][k]=1;temp--;if(temp==0)//分配a个座位 break;}}cout<<endl;break;}}if(!flag)//所有行的剩余座位都不满足要求 {int temp=a;for(int j=0;j<20;j++){for(int k=0;k<5;k++){if(Carriage[j][k]==0){Carriage[j][k]=1;cout<<j*5+k+1<<" ";temp--;}}if(temp==0){cout<<endl;break;}}}}return 0;
}

CCF:201609-2 火车购票相关推荐

  1. CCF CSP 201609-2 火车购票

    题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...

  2. CCF CSP 201609-2 火车购票(C++语言100分)[简单模拟题]

    1. 问题链接:CCF 201609-2 火车购票 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的 ...

  3. CCF CSP 201609-2 火车购票(90分,怎么也检查不出来问题在哪儿,导致不能满分??)

    问题描述 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配 ...

  4. 【CCF】201609-2火车购票

    原文详见:https://blog.csdn.net/tigerisland45/article/details/54798869 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1. ...

  5. CCF CSP 201609-2 火车购票 C++实现 100分

    问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...

  6. CCF201609-2 火车购票

    问题描述: 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分 ...

  7. # CSP 201609-2 火车购票购买(100分)

    试题编号: 201612-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20 ...

  8. ## CSP 201609-2 火车购票购买,C语言版(90分版)

    试题编号: 201612-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20 ...

  9. CCF201609-2 火车购票(100分)

    试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一 ...

最新文章

  1. 二值网络训练--Training Competitive Binary Neural Networks from Scratch
  2. SVN之文件同步更新
  3. Fast implementation/approximation of pow() function in C/C++
  4. 虚拟机磁盘模式的转换
  5. oracle配置首选项主目录名_ArduinoIDE安装与配置
  6. IntelliJ IDEA 提交代码时出现:Code analysis failed with exception: com.intellij.psi......(亲测)
  7. 448. Find All Numbers Disappeared in an Array645. Set Mismatch
  8. 网易云音乐被纳入港股通 3月7日起生效
  9. 正则表达式入门30分钟——很经典的入门教材
  10. https阿里云证书购买与apache环境配置
  11. virtual 关键字以及虚函数的介绍
  12. deque插入和删除操作
  13. 【干货】32个EMC标准电路分享!
  14. 谷歌大脑全新软件能让马赛克样模糊人脸变清晰
  15. Word、Excel操作技巧大全
  16. Linux预科知识篇之认识计算机
  17. 上海亚商投顾大盘回顾:两市成交仅5600亿元 创两年半以来新低
  18. 微信小程序手机号码如何进行解密
  19. 友盟 点完登陆后无反应_免登陆、免安装、不限速,打开网页直接下载百度云!...
  20. [JAVA]数字摘要算法工具类——(Hamc)MD5/SHA1/SHA256/SHA512/PBKDF2

热门文章

  1. matplotlib详细教学
  2. 智能优化算法:正余弦优化算法-附代码
  3. 随机游走(Random Walk)模型详解:历史||数学表示||物理意义
  4. hive (2.01)读取 json 格式 的处理方式 2018-4-24
  5. CV之NS之VGG16:基于TF Slim库利用VGG16算法的预训练模型实现七种不同快速图像风格迁移设计(cubist/denoised_starry/mosaic/scream/wave)案例
  6. @JsonFormat 12小时制跟24小时制
  7. ISDN, ADSL的历史新闻
  8. 北京京创曙光科技有限公司SQL笔试题
  9. 2019天下3最新服务器,天下3:2019标准号全民竞技赛【太虚】门派定位解析及入门讲解...
  10. 数据库中存储大量图片设计