#970. 图书馆管理

图书馆管理

No submission language available for this problem.

题目背景

这是最好的时代,这是最糟的时代。终于,你在图书馆得到了一份管理员的工作。这份工作的内容主要是

  • 整理书架
  • 为借书者拿书
  • 整理借书者所还的书
  • 定期将所还的书放回书架上

书籍不能乱摆放,得整理,按照作者的名字字典升序,书名的字典升序进行摆放。

题目描述

幸运的是,你学过编程,打算设计一个程序来辅助自己做这种重复性比较多的工作。程序将会直接告诉你,每一本书将会还到哪本书籍的后面。你可以认为书名是不会重复的。

输入格式

一开始,书架上会把书籍放上去,当然这时候它们摆放的位置是乱的。每一行的输入格式为:

"title" by author

直到输入:

END

所有的书籍输入结束。

接下来,每行将会有一个借书,还书以及重新放回书架的行为。每个行为输入将会占一行,它们的格式分别为

BORROW title

RETURN title

SHELVE

同样,当输入为 END 时,行为结束。

输出格式

每一次出现 SHELVE 时,你得将已还回的书还到书架,程序要输出每一本书得放回到当前书架上的哪一本书的后面,输出格式为:

Put title1 after title2

若这本书得放到头上位置,则输出格式为:

Put title first

针对每次 SHELVE 行为后,得再输出一个 END 表示该行为(放回书架的行为结束)

"The Canterbury Tales" by Chaucer, G.
"Algorithms" by Sedgewick, R.
"The C Programming Language" by Kernighan, B. and Ritchie, D.
END
BORROW "Algorithms"
BORROW "The C Programming Language"
RETURN "Algorithms"
RETURN "The C Programming Language"
SHELVE
END
Put "The C Programming Language" after "The Canterbury Tales"
Put "Algorithms" after "The C Programming Language"
END

提示

1, title 最多 80 个字符组成;

2, author 最多 80 个字符组成;

3, 书名 title 不会包含双引号;

4, 部分测试点将考虑代码的健壮性

50 分是正常的,先做出 50 分(2 AC,2 TEL),再考虑可能的因素。

TIP: Windows 文本的实际换行与 Unix 文本实际换行的差别。