• C++挑选书籍


    C++挑选书籍

    问题描述:

    小明是一位非常好学的同学。为了充分利用寒假的空闲时光,小明打算带一些书回家阅读。这些书分为5个类别:数学(MATH)、哲学(PHIL)、经济学(ECON)、文学(LITE)和艺术(ART)。小明有很多书,但是由于小明的行李箱空间有限,只能带不超过3本书回家。

    为了挑选适合带回家的书,小明为每本书设定了一个期望值。不同的书有不同的书名,期望值也不同。期望值越大,小明就越倾向于带它回家。小明决定通过整理这些书,确定带哪些书回家,请你帮他编写整理书的程序。

    整理前,书摞为空,整理的过程由一系列操作组成,最终形成一摞书。每个操作一定是以下4种操作之一:

    1、添加(ENLIST)

    输入语法为:ENLIST [类别] [书名] [期望值]。

    表示添加一本书到书摞的顶部,这本书的类别、书名、期望值为输入指定。

    例如,操作 ENLIST ECON DASKAPITAL 88 表示添加一本名为《DASKAPITAL》的经济学的书到书摞的顶部,而且小明的期望值为88。

    2、删除(REMOVE)

    输入语法为:REMOVE [书名]。

    表示从书摞中删除一本输入指定书名的书。如果书摞中没有指定书名的书,则不执行任何操作。

    例如,操作 REMOVE BAYESIAN 表示删除书摞中名为《BAYESIAN》的书。

    3、精炼(REFINE)

    输入语法为:REFINE [类别]。

    表示将书摞中指定类别的书全部删除,只保留一本期望值最大的书放到书摞顶部。若指定类别的书不存在,则不执行任何操作。

    例如,操作 REFINE ECON 表示删除所有的经济类的书,仅保留期望值最大的一本放回书摞的顶部。

    4、清理(CLEANUP)

    输入语法为:CLEANUP [类别]。

    表示将书摞中指定类别的书全部删除,并将剩余的所有书按期望值排序,使得期望值较大的书放在上面。若指定类别的书不存在,则不执行删除操作,只进行排序。

    例如,CLEANUP LITE 表示删除书摞中的所有文学类的书,并将剩余的书排序。

    输入T个操作,请问最终书摞顶部的三本书是什么?

    输入格式:

    第一行为一个整数 TT,表示操作数量。

    接下来的 TT 行,每行输入一个操作。

    输出格式:

    自顶向下输出书摞最顶端的三本书;如果书摞中书的数量不足三本,则自顶向下输出所有书;如果书摞中没有书,输出 NULL。 在输出每本书时,应输出一行,包括:书的类别、书名和期望值,它们之间由一个空格分隔。

    样例输入:

    8
    ENLIST MATH BAYESIAN 90
    ENLIST PHIL METHODS 80
    ENLIST ECON DASKAPITAL 88
    ENLIST LITE HARRY 85
    ENLIST ART DAVINCI 95
    REMOVE BAYESIAN
    REFINE ECON
    CLEANUP LITE 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    样例输出:

    ART DAVINCI 95
    ECON DASKAPITAL 88
    PHIL METHODS 80
    
    • 1
    • 2
    • 3

    源码传送门

    传送门:https://pan.baidu.com/s/19ik-NgRX4Hv6R-qkx8Rk9Q?pwd=1111

  • 相关阅读:
    MySQL碎片整理小节--实例演示
    TypeScript教程-2022
    平衡二叉树的定义,插入操作以及插入新结点后的调整规则(ALV树)
    腾讯mini项目-【指标监控服务重构-会议记录】2023-07-21
    自己动手从零写桌面操作系统GrapeOS系列教程——12.QEMU+GDB调试
    nginx 反向代理 ElasticSearch es
    收藏,安装报错信息汇总,MacOS上安装Adobe等软件/插件报错问题解决合集
    Windows应急响应信息采集工具
    JavaWeb、Web核心
    non-trivial designated initializers not supported
  • 原文地址:https://blog.csdn.net/qq_35960743/article/details/127776346