Programming contests

DEIK Regionális Programozó Csapatverseny, gyakorló feladatsor

October 26, 2012 8:00 PM – November 23, 2012 12:00 AM

Train Tracks

Andy loves his set of wooden trains and railroad tracks. Each day, Daddy has to build a new track for him. The tracks he likes best form a simple loop with no branches or dead ends, so he can run his trains around and around for hours until it is time for the big crash that destroys the whole construction.

So here is the question: Given a set of track pieces, can you form a simple loop with them, while using up all the pieces?

Each piece of track is described by the connectors at both ends. A standard piece has one “male” and one “female” connector. But there are also track pieces with two male or two female connectors, as shown in the front right of the following picture:

To fit together, each male connector must be connected to a female connector. Unlike real wooden tracks, our pieces are assumed to be flexible, so their length or shape is not an issue here. However, you may not connect the two ends of the same piece together.

Input Specification

The input begins with the number of test cases. Each following line contains one test case. Each test case consists of a list of between 1 and 50 (inclusive) train track pieces. A piece is described by two code letters: M for a male and F for a female connector. Pieces are separated by space characters. When building the loop, the connectors of the pieces may only be considered in the order given in the input, that is, the pieces may not be reversed!

Output Specification

For each test case, output a line containing either LOOP or NO LOOP to indicate whether or not all the pieces can be joined into a single loop.

Sample Input

  1. 4
  2. MF MF
  3. FM FF MF MM
  4. MM FF
  5. MF MF MF MF FF
download as text file

Output for Sample Input

  1. LOOP
  2. LOOP
  3. LOOP
  4. NO LOOP
download as text file
University of Debrecen; Faculty of Informatics; v. 03/01/2019