思路待补充

import java.util.Scanner;

class Main{
public static void main(String[] args) {
//100个座位
int[] seat = new int[100];
Scanner sc = new Scanner(System.in);
//购票指令的数量
int n = sc.nextInt();
//存储每次的购票数量
int[] record = new int[n];
//初始化购票指令
for(int i = 0;i<n;i++){
record[i] = sc.nextInt();
}
sc.close();
//开始购票
for(int i = 0;i<n;i++){
//将每次购票放在一个变量num中
int num = record[i];
//是否有连续座位
boolean flag = false;
for(int x = 0;x<20;x++){
for(int y = 0;y<5;y++){
//当前这个位置没有被安排
//且当前行开始+当前需要预定票数要<=5
if(seat[x*5+y]==0&&y+num<=5){
for(int z = x*5+y;z<x*5+y+num;z++){
//第一次购票,就在座位标记1,第二次购票,就在座位标记2
seat[z] = i+1;
}
//有连续座位
flag = true;
//跳出第三个for循环
break;
}
}
//跳出第二个for循环
if(flag){
break;
} }
//初始的flag是false,如果经过中间三个for循环,flag就是true,就进不了下面的if
//查看flag,如果没有连续座位,就是从前到后遍历,每一个座位遇到0,就置数字
if(!flag){
while(num-->0){
for(int w = 0;w<100;w++){
if(seat[w]==0){
seat[w] = i+1;
//置完一次就跳出for循环,给本次购票 下一张票找位置
break;
}
}
}
}
}
//开始遍历座位输出
//定义一个count,记录每一次购票是否达到本次购票数目
int count = 0;
for(int i = 0,j = 1;i<100;i++){
if(seat[i]==j){
System.out.print(i+1+" ");
count++;
//如果count等于本次购票数目,就重新开始遍历,i和count置0;j++,进行下一个购票指令
if(count==record[j-1]){
i = 0;
j++;
count = 0;
System.out.println();
}
}
}
}
}

201609-2 火车购票 Java的更多相关文章

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

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

  2. 【刷题笔记】火车购票-----java方案

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

  3. CCF|火车购票|Java|80分

    import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Sc ...

  4. CCF CSP 201609-2 火车购票

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

  5. CCF 2016-09-2 火车购票

    CCF 2016-09-2 火车购票 题目 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的 ...

  6. 火车购票问题(16年ccf)

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

  7. ccf 火车购票

    import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main2 { pu ...

  8. CCF 201612-2 火车购票 (暴力)

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

  9. CCF2016092火车购票

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

随机推荐

  1. POJ 3090 欧拉函数

    求一个平面内可见的点,其实就是坐标互质即可,很容易看出来或者证明 所以求对应的欧拉函数即可 #include <iostream> #include <cstdio> #inc ...

  2. leetcode1161 Maximum Level Sum of a Binary Tree

    """ BFS遍历题,一遍AC Given the root of a binary tree, the level of its root is 1, the leve ...

  3. python实现二分法

    前言: 二分法主要是用来查找位置的id,每次能够排除掉一半的数据,查找的效率非常高,但是局限性比较大. 必须是有序序列才可以使用二分查找. 原理 首先,假设表中元素是按升序排列,将表中间位置记录的关键 ...

  4. vue-cli 局域网可访问配置

    vue-cli 使用官方脚手架搭建以后,本地的config配置已经没有了,默认打开localhost,无法ip访问 只要修改项目目录配置和防火墙配置 1.在项目根目录下面加一个文件vue.config ...

  5. java时间差

    以下代码没什么意义,只是记录 long mstart = System.nanoTime(); int mIndex = 0 ; for (int i = 0; i < 100000000; i ...

  6. VC 插入excel

    CString ePath,iPath; m_ePath.GetWindowText(ePath); m_iPath.GetWindowText(iPath); _Application app; W ...

  7. 吴裕雄--天生自然C++语言学习笔记:C++ 基本的输入输出

    C++ 的 I/O 发生在流中,流是字节序列.如果字节流是从设备(如键盘.磁盘驱动器.网络连接等)流向内存,这叫做输入操作.如果字节流是从内存流向设备(如显示屏.打印机.磁盘驱动器.网络连接等),这叫 ...

  8. ACM-牛喝水

    题目描述:牛喝水  The cows have a line of 20 water bowls from which they drink. The bowls can be either righ ...

  9. 详解BurpSuite软件 请求包 HTTP (9.23 第十天)

    HTTP协议基础 HTTP:HyperText Transfer Protocol,超文本传输协议 1.协议特点: 简单快速,请求方式get post head等8中请求方式 无连接(一次请求就断开) ...

  10. MFC 根据字符宽度居中

    Gdiplus::Font font(_T("微软雅黑"), (Gdiplus::REAL)130); Gdiplus::RectF orgin(0.0f, 100.0f, nWi ...