University of Toronto ACM-ICPC Tryouts 2012
Maybe you've played Diablo? There are three different character classes: Noobs, Suckers, and Pros. Noobs don't know anything about the game. Suckers think they know how to play. Pros know that the goal of the game is to write a script that will farm for valuable items that they can turn around and sell to Suckers on the black market. Obviously Pros would sell to Noobs if they could, but Noobs don't even know how to buy items.
An obvious piece of prerequisite information for making such a bot is knowing what sorts of items are worth picking up. There are Normal, Magic, Rare, and Set items:
- Set items always belong to some famous dead person, so they always
begin with a word that ends in
's
(e.g.Andrew's
). No other items are special enough to begin this way. - Rare items always have names that are two words long.
- Magic items always have names that are between two and four words
long. If, and only if, a Magic item has more than two words in its
name, then the last two words are
of [something]
(e.g.of Doom
). - If the first word is
Damaged
, the item is a Normal item. Furthermore, any item that could not possibly be Magic, Rare, or Set must also be Normal. No other items are Normal. - You may not have played Diablo, but hopefully you still know that a "word" is a maximal substring of non-space characters. Also, letter case is irrelevant.
You have a list of item names, and you need to be able to classify these items as accurately as possible. It may not be possible to assign a unique type to each item, but as long as it's not Normal, surely you'll want it. Every item name is a string of no more than characters, containing only alphabetic characters, spaces, and apostrophes. Every name begins and ends with a non-space character.
Input Specification
Line 1: 1 integer,
Next lines: The name of the th item, for
Output Specification
lines: The type of the th item (one of Normal
, Set
, Magic
,
or Rare
), or Not sure, take anyways
if the item's type cannot be
determined, but is known not to be Normal, for
Sample Input
7
Somebody's Something of Whatever
stone of jordan
Wirt's Leg
FLAMING TURNIP
Damaged Goods
Sword
Fish shaped volatile organic compounds
Sample Output
Set
Magic
Set
Not sure, take anyways
Normal
Normal
Normal
The first and third items begin with possessives, so they must be Set
items. The second item is three words long, and ends in of [something]
so it must be Magic. The fourth item could be either Rare or Magic. The
fifth item begins with Damaged
so it's Normal. The last two items
don't fit the descriptions of Set, Rare, or Magic, so they must be
Normal also.
Comments
Stuck? Focus on these words:
wjomlex i am going to find you
Got a Zod Rune doe?
Since the original data were weak, 9 more cases were added to the original batch, now worth a total of 100 marks.
I'm the original author of this problem, so I'm interested in the newly-added cases. Can you email them to me?
NVM
Reread the problem more carefully, there is indeed a scenario where you output rare.
After rereading multiple times, I still can't think of a scenario where the correct answer would be to output rare. Can some please comment a scenario where you would output rare?