华为OD机试真题-打印文件

2023-11-11

题目描述:
有5台打印机打印文件,每台打印机有自己的待打印队列。因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的优先级一,其中数字越大优先级越高。打印机会从自己的待打印队列中选择优先级最高的文件来打印。如果存在两个优先级一样的文件,则选择最早进入队列的那个文件。
现在请你来模拟这5台打印机的打印过程。
输入描述:每个输入包含1个测试用例一,每个测试用例第1行给出发生事件的数量N(O<N <1000)。接下来有N行,分别表示发生的事件。
共有如下两种事件:
1."N PNUM",表示有一个拥有优先级NUM的文件放到了打印机Р的待打印队列中。(0<P <= 5,0<NUM<= 10);
2."OUTP",表示打印机Р进行了一次文件打印,同时该文件从待打印队列中取出。(0<P <= 5)。输出描述:
对于每个测试用例,每次"OUTP"事件,请在一行中输出文件的编号。如果此时没有文件可以打印
请输
出"NULL"。
文件的编号定义为:"IN PNUM"事件发生第×次,此处待打印文件的编号为x。编号从1开始。

示例1

输入:
7
IN 1 1

IN 1 2

IN 1 3

IN 21

OUT 1

OUT 2

OUT 2
输出:
3

4
NULL

#include <iostream>
#include <vector>
#include <queue>
#include <string>
using namespace std;

class Print
{
public:
	Print()
	{
		pq.resize(5);
		x = 0;
	}
	vector<priority_queue<pair<int,int>, vector<pair<int, int>>, greater<pair<int, int>>> >pq;
	int x;
	void input(int p,int num)
	{
		x++;
		pq[p - 1].push(make_pair(10-num,x));
	}
	void output(int p)
	{
		if (pq[p - 1].empty())
			cout << "NULL\n";
		else
		{
			cout << pq[p - 1].top().second << "\n";
			pq[p - 1].pop();
		}
	}
};
int main()
{
	int N;
	cin >> N;
	int p, num;
	Print prt;
	for (int i = 0; i < N; i++)
	{
		string s;
		cin >> s;
		if (s == "IN")
		{
			int p, num;
			cin >> p >> num;
			prt.input(p, num);
		}
		else if (s == "OUT")
		{
			int p;
			cin >> p;
			prt.output(p);
		}
	}
	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为OD机试真题-打印文件 的相关文章

随机推荐

  • ubuntu16.04下2080Ti显卡配置 cuda10.0 + cudnn7.4.2 + tensorflow 1.13.1

    ubuntu16 04下2080Ti显卡配置cuda10 0 cudnn7 4 2 tensorflow 1 13 1 pytorch 1 0 0 pytorch 1 0 0 友情提醒 没有一个环境配置只看一个文档就能解决的 所以还是需要多
  • java 相关知识点梳理(包含项目中实际应用) 一 ~持续更新

    最全java知识点梳理 1
  • 【自用】云服务器 docker 环境下 HomeAssistant 安装 HACS 教程

    一 进入 docker 中的 HomeAssistant 1 查找 HomeAssistant 的 CONTAINER ID 连接上云服务器 宿主机 后 终端内进入 root 输入 docker ps 找到了 docker 的 contai
  • source /build/envsetup.sh和lunch)

    提醒 想要研究安卓编译系统 必须对bash shell和GUN make非常熟悉 不然会看的云里雾里 没有这个背景的可以先补充知识 1 source build envsetup sh 主要是加载device vendor目录下面的vend
  • sqlsum多个字段求和_条件求和函数Sumif、Sumifs超级实用技巧解读!

    提起求和 有点儿老生常谈的感觉 不就是用Sum函数而已吗 如果附加条件 你还认为是用Sum函数吗 这是我们是否应该考虑用Sumif或Sumifs函数呢 详情请阅读下文 一 Sumif函数 单条件求和 1 功能及语法结构 功能 对符合条件的单
  • 华为传输服务器系统类型,服务器操作系统平台类型

    服务器操作系统平台类型 内容精选 换一换 云硬盘挂载至云服务器时 无法挂载 以下排查思路根据原因的出现概率进行排序 建议您从高频率原因往低频率原因排查 从而帮助您快速找到问题的原因 如果解决完某个可能原因仍未解决问题 请继续排查其他可能原因
  • 2022 年全国硕士研究生入学统一考试英语(二)试题

    2022年全国硕士研究生入学统一考试英语 二 试题 Section Use of English Directions Read the following text Choose the best word s for each numb
  • MySQL自学笔记详细版(从安装到入门)

    MySQL学习目录 前言 一 MySQL是什么 二 MySQL的好处 三 数据库的概念 1 DB database 2 DBMS Database Management System DBMS分为两类 3 SQL Structure Que
  • TypeError: unsupported operand type(s) for /: ‘NoneType‘ and ‘float‘

    可能有的小伙伴在使用opencv的时候会出现以下错误 这个错误的原因可能是图片读取失败 导致 img 变量为 NoneType 类型 在变量上执行除法运算时出现了 TypeError 所以就加了一个 if 条件判断 判断 img 是否为 N
  • VC++ UI布局管理器

    程序从codeproject上下载的 功能类似QT的QLayout 有了它界面缩放再也不会乱套了 具体使用方法可参考源码示例 资源下载链接地址 https download csdn net download u012156872 1926
  • PyTorch学习日志_20201031_数据并行处理

    日期 2020 10 31 主题 PyTorch入门 内容 根据PyTorch官方教程文档 学习如何使用数据并行 DataParallel 来使用多GPU 根据自己的理解和试验 为代码添加少量注解 具体代码如下 数据并行处理 导入和参数 i
  • c++——复制构造函数

    一 概述 复制构造函数作用 使用一个已经存在的对象去初始化同类的一个新对象 其形参是本类对象的引用 如果没有定义复制构造函数 编译器会在必要时自动生成一个隐含的复制构造函数 声明和实现复制构造函数 class 类名 public 类名 形参
  • Netty实战(八)引导

    引导 一 引导 1 1 什么是引导 1 2 Bootstrap 类 1 3 引导客户端和无连接协议 1 4 引导客户端 1 5 Channel 和 EventLoopGroup 的兼容性 二 引导服务器 2 1 ServerBootstra
  • Python:小数、百分比相互转化

    简介 实现小数和百分比相互转换 相关攻略 Python内置库 数据计算相关 math random 类型 主要分为以下5种情况处理 1 百分比转小数 2 小数转百分比 直接转可能存在尾数不足的情况 3 小数转百分比 注意是两个 4 小数转百
  • MySQL 中 MyISAM 与 InnoDB 引擎的区别

    分析 回答 区别很多 大家说出下面几点 面试就应该 OK 了 1 事务支持 MyISAM不支持事务 而InnoDB支持 InnoDB的AUTOCOMMIT默认是打开的 即每条SQL语句会默认被封装成一个事务 自动提交 这样会影响速度 所以最
  • KiCad使用笔记(03)-原理图绘制

    绘图过程 放置元件 绘制导线 编号元件 检查原理图 关联封装 生成网表 标题栏设置 相关视频教程 绘图过程 放置元件 放置元件可以点击右侧工具栏中放置元件 然后在工作区鼠标左键单击 在弹出的选项框中通过关键词搜索或是直接在下方列表中选择 可
  • ctf misc之MP3隐写

    2022 4 9 第一次写mp3隐写 走了好多坑记录一下 题目得到一个MP3文件和一个压缩包 然后听一遍这个歌发现最后面有一段非常违和的 用Audacity打开这个mp3 查找了一下MP3的隐写方法有以下几种 MP3编码隐写将数据隐藏在MP
  • 【Seata】00 - Seata Server 部署(Windows、Docker 基于 Jpom)

    文章目录 前言 参考目录 版本说明 Windows 部署 seata server 1 下载压缩包 2 文件存储模式 3 db 存储模式 3 1 建表 3 2 修改配置文件 3 3 启动脚本 4 源码部署 Docker 部署 seata s
  • Android MVP 框架搭建

    前言 本文主要根据自身项目的使用和对MVP的理解 搭建符合自身项目情况的MVP架构 关于MVP M Model 负责数据的请求 解析 过滤等数据操作 V View 负责处理UI 通常以Activity Fragment的形式出现 P Pre
  • 华为OD机试真题-打印文件

    题目描述 有5台打印机打印文件 每台打印机有自己的待打印队列 因为打印的文件内容有轻重缓急之分 所以队列中的文件有1 10不同的优先级一 其中数字越大优先级越高 打印机会从自己的待打印队列中选择优先级最高的文件来打印 如果存在两个优先级一样