问题描述

请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。

假设一节车厢有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。

**思路:**先按行遍历一遍,判断能不能买到同一排的票,如果不能的话,直接从前往后遍历,只要是空位就选,具体的代码中都写注释了

# 初始化所有座位,0表示该位置空,1表示该位置有人

sites = [0]*100

n = int(input())

nums = list(map(int,input().split()))

for t in range(n):

# 记录是否买到了连座的票

judge = False

# 需要购买的票的数量

site_n = nums[t]

# 存放当前需要购票的人的座位

temp = []

# 先找有没有连续的座位,一排一排的遍历

for i in range(0,100,5):

for j in range(i,i+5):

# 如果这个位置为空,就先将该座位加入选择的列表中

if sites[j] == 0:

temp.append(j)

site_n -= 1

# 如果已经买够票了就退出

if site_n == 0:

judge = True

break

# 否则,就说明座位不连续了,清空直接选择的座位列表,并且将需要购票的数量还原的初始状态

else:

temp.clear()

site_n = nums[t]

if judge:

break

# 如果在这一排没有买到连续的座位,每次到下一排都需要重新重置temp和site_n

temp.clear()

site_n = nums[t]

# 如果没有买到连续的票

if judge == False:

for i in range(100):

if sites[i] == 0:

temp.append(i)

site_n -= 1

if site_n == 0:

break

for i in range(nums[t]):

# 将被买了票的位置在座位列表中的值改为1,并且打印此次的选座方案

sites[temp[i]] = 1

print(temp[i]+1,end=" ")

# 打印空行

if t != n-1:

print()

原文链接:https://blog.csdn.net/qq_43155260/article/details/109560332

python实现火车座位安排_CSP-火车购票Python实现相关推荐

  1. python实现火车座位安排_火车订票引擎:一列火车有67个座位,每排5个座位,阿拉伯国家联盟有2个座位...

    我正在用python设计一个程序. 我在火车上有67个座位,我需要把座位分成几排,每排可以有5个座位,最后一排有2个座位. 我不知道我将如何设计这个. 我正在粘贴我设计的代码.在class Reser ...

  2. python判断火车票座位代码_12306 火车票监控Python代码

    import urllib.request as request import http.cookiejar as cookiejar import re import os import smtpl ...

  3. python123判断火车票座位号分布图_火车座位分布图

    乘坐火车时,有的想买靠窗的座位,有的想和朋友买连坐,那么火车座位分布图是怎么样的,下面和大家分享下最新最全的火车座位分布图. 火车座位分布图 火车靠窗的座位号是多少?座位号尾数是0.4.5.9的靠窗. ...

  4. java火车票售票系统,火车购票系统,系统实现了用户会员管理、火车车次管理、火车座位管理、系统公告管理、火车票退票、火车票换乘、换乘查询、直达查询、乘车人管理、订单管理、个人中心管理等

    火车票售票系统 java火车票售票系统,系统实现了用户会员管理.火车车次管理.火车座位管理.系统公告管理.火车票退票.火车票换乘.换乘查询.直达查询.乘车人管理.订单管理.个人中心管理等. 数据库采用 ...

  5. 推荐一个可以查看火车座位的小程序

    每次在12306购买火车票都不知道自己在哪个位置,是挨着窗户还是靠着路,还有就是几个人一块买的话,肯定需要连在一起的.如何查找自己的座位号呢?发现了这个小程序,非常方便的可以看到,以后再也不用百度了. ...

  6. 华为OD机试 - 新员工座位安排系统(Python) | 机试题+算法思路+考点+代码解析 【2023】

    新员工座位安排系统 题目 工位由序列 F 1 F_1 F1​</

  7. 华为OD机试 - 新员工座位安排系统(C 语言解题)【独家】

    最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典 [华为OD机试]全流程解析+经验分享,题型分 ...

  8. 华为OD机试题,用 Java 解【新员工座位安排系统】问题 | 含解题说明

    华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南 华为od机试,独家整理 已参加机试人员的实战技巧 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 华 ...

  9. 软件工程毕业设计课题(15)基于python的毕业设计python教室图书馆座位预约系统毕设作品源码

    项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于web网页的教室图书馆座位预约系统,整个网站项目使用了B/S架构,基于python的Django框架下开发:管理员通过后台录入信息.管理信息 ...

最新文章

  1. go语言中无法获取goroutine相关的信息
  2. quartz 分布式_后端必备分布式技术之-调度系统Quartz设计原理
  3. EasyUI-子页面增加显示tabs的一个问题
  4. 11(maven+SSH)网上商城项目实战之Freemarker 页面静态化
  5. 在SQL Server 2017上充分利用Python
  6. sql server 视图_轻松搜索SQL Server –搜索目录视图
  7. 移动端overflow-x去掉滑动条
  8. 图像特征提取之LBP算法
  9. html5商城后台源码,商城后台管理系统HTML+css+jquery
  10. 5G的前传和回传是什么
  11. itextpdf 怎么下划线_itext生成pdf设置下划线,itextpdf下划线,使用setUnderli
  12. windows10、windows11、windows-server官方下载安装
  13. 干货 | 京东云弹性伸缩功能实践
  14. 基于yolov5+deepsort的智能售货机商品目标检测种类识别计数
  15. TCP报文( tcp dup ack 、TCP Retransmission)
  16. vue-父子组件传参以及无限级评论
  17. 伽罗华域(Galois Field, GF, 有限域)的四则运算
  18. 用python画花瓣-用python画花瓣
  19. 【综合复健训练2021/1/18:题解】Comprehensive Training (CF 1000 ~ 1600)
  20. 初级会计实务--第五章第一节、收入

热门文章

  1. PPT把图片裁剪成各种形状
  2. LOMA280保险原理读书笔记
  3. 双重for循环的实例(时钟运转、长方形、平行四边形、三角形)
  4. 基于Linux串口实现语音控制刷抖音
  5. 【操作系统之哲学导论】文件原理篇
  6. 科技赋能零售,最终还是要消失于无形中
  7. C语言内存 dump 函数
  8. android开发:保存并且记住账号密码,输入输出流
  9. 计算机的声音怎么设置在哪设置方法,拼多多电脑版声音在哪里设置?没声音问题出在哪?...
  10. 网易邮箱大师日历功能的同步问题