2013年7月18日 星期四

230 - Borrowers



 Borrowers 

I mean your borrowers of books - those mutilators of collections, spoilers of the symmetry of shelves, and creators of odd volumes. - (Charles Lamb, Essays of Elia (1823) `The Two Races of Men')
Mr. Lamb 是為圖書館館員, 館員們都會遭遇到借書的問題,人們不會將書放回原本該有的位置。取而代之的是,歸還的書將會先放置在服務台,等到館員有空時,館員將會把書放回書架上。放置到正確的位置相當耗時,你可以寫一個程式幫助他們。


當借書者歸還書時,電腦會記錄書目。隔一段時間後,館員會問你書該怎麼放到正確的位置上,在把書放回書架上前,他們會將書按照作者名稱排序再對書目的字典順序排序。你的程式將要按照書架上的順序輸出放置方式。

Input

首先,會告訴你圖書館有多少書,每一行有一本書。(不會按照字典順序給定)
一開始所有書都在架上且排序好,不會有兩本書具有相同的名稱,給定的格式如下:


``title" by author
將會用一行結束清單,格式如下:
END


接下來會有訊息,描述哪些書被借出或者歸還,以及館員著手放回書架上的動作。
描述的格式如下:

BORROW ``title"
RETURN ``title"
SHELVE
 
最後終止於一行,格式如下:
END

Output

對於每一次 SHELVE 指令出現時,你將要輸出一系列的指令,告訴館員如何放書。
格式如下:

Put `` tex2html_wrap_inline61 " after `` tex2html_wrap_inline63 "
如果是第一本會比較特別,輸出格式如下:

Put ``title" first

對於每組
SHELVE 後接一行

END

假設所有書目長度不超過 80 字元,所有作者名稱不超過 80 字元,且書目不會有
"  字元。

Sample Input

"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

Sample Output

Put "The C Programming Language" after "The Canterbury Tales"
Put "Algorithms" after "The C Programming Language"
END