1016: Slurpys
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:1
Solved:0
Description
Problem 8: Slurpys
Recognizing strings based on a set of restrictions is a common
computational problem.
Problem Statement: A Slurpy is a string of characters that has certain
properties. Your program will read in strings of characters and output
whether or not they are Slurpys.
A Slump is a character string that has the following properties:
1. Its first character is either a 'D' or an 'E'.
2. The first character is followed by a string of one or more 'F's.
3. The string of one or more 'F's is followed by either a Slump or a 'G'.
The Slump or 'G' that follows the F's ends the Slump. For example
DFFEFFFG is a Slump since it has a 'D' for its first character,
followed by a string of two F's, and ended by the Slump 'EFFFG'.
4. Nothing else is a Slump.
A Slimp is a character string that has the following properties:
1. Its first character is an 'A'.
2. If it is a two character Slimp then its second
and last character is an 'H'.
3. If it is not a two character Slimp then it is in
one of these two forms:
a. 'A' followed by 'B' followed by a Slimp
followed by a 'C'.
b. 'A' followed by a Slump (see above)
followed by a 'C'.
4. Nothing else is a Slimp.
A Slurpy is a character string that consists of a Slimp followed by a
Slump.
The following diagrams should clarify these definitions:
[Graphics deleted]
Examples:
Slumps: DFG, EFG, DFFFFFG, DFDFDFDFG, DFEFFFFFG
Not Slumps: DFEFF, EFAHG, DEFG, DG, EFFFFDG
Slimps: AH, ABAHC, ABABAHCC, ADFGC, ADFFFFGC, ABAEFGCC, ADFDFGC
Not Slimps: ABC, ABAH, DFGC, ABABAHC, SLIMP, ADGC
Slurpys: AHDFG, ADFGCDFFFFFG, ABAEFGCCDFEFFFFFG
Not Slurpys: AHDFGA, DFGAH, ABABCC
Input: The first line contains an integer N between 1 and 10 describing
how many strings of characters are represented. The next N lines each
contain a string of 1 to 60 alpha characters.
Output: The first line of output should read SLURPYS OUTPUT. Each
of the next N lines of output should consist of either YES or NO
depending on whether or not the corresponding input line is a Slurpy. The
last line of output should read END OF OUTPUT.
Example: The following input
data:
2
AHDFG
DFGAH
should produce the following
output:
SLURPYS OUTPUT
YES
NO
END OF OUTPUT