CCC '05 J5 - Bananas

View as PDF

Submit solution

Points: 10
Time limit: 2.0s
Memory limit: 64M

Problem types

The term "code monkey" is sometimes used to refer to a programmer who doesn't know much about programming. This is unfair to monkeys, because contrary to popular belief, monkeys are quite smart. They have just been misunderstood. This may be because monkeys do not speak English, but only monkey language. Your job is to help humans and monkeys understand each other by writing a monkey language dictionary. For each word that is typed in, your program must determine whether it is a valid monkey language word.

Unlike in English, spelling in monkey language is very simple. Every word in monkey language satisfies the following rules, and every word satisfying the following rules is a monkey language word.

  1. A monkey language word is a special type of word called an A-word, which may be optionally followed by the letter N and a monkey language word.
  2. An A-word is either only the single letter A, or the letter B followed by a monkey language word followed by the letter S.

Here are some examples:

  • The word A is a monkey language word because it is an A-word.
  • The word ANA is a monkey language word because it is the A-word A followed by the letter N and the monkey language word A.
  • The word ANANA is a monkey language word because it is the A-word A followed by the letter N and the monkey language word ANA.
  • The word BANANAS is a monkey language word because it is an A-word, since it is the letter B followed by the monkey language word ANANA followed by the letter S.

Write a program which accepts words, one word on each line, and for each word prints YES if the word is a monkey language word, and NO if the word is not a monkey language word. The input word "X" indicates the program should terminate, and there is no output for word "X" (even though it is not a monkey word).

Sample Input

A
ANA
ANANA
BANANAS
BANANA
X

Sample Output

YES
YES
YES
YES
NO

Comments


  • 1
    4fecta  commented on June 8, 2019, 3:08 p.m.

    I keep getting WA on the last case. Can anyone give me a hint as to what I am doing wrong?


    • 3
      lookcook  commented on June 8, 2019, 4:46 p.m.

      Try inputting "BANSA" into your program. It should output "NO" because the B and S are not separated by a monkey word.


      • 2
        4fecta  commented on June 8, 2019, 5:14 p.m.

        Thank you for spotting my error.


  • -1
    anasschoukri2  commented on Aug. 22, 2017, 11:05 a.m.

    ANABANANAS is a monkey word ??


    • 1
      aeternalis1  commented on Aug. 22, 2017, 12:20 p.m. edited

      No, because the two monkey words ('ANA' and 'BANANAS') aren't separated by an 'N'.


  • 0
    susheelk  commented on Feb. 15, 2017, 5:50 p.m. edited

    Is BANANASNBANANAS a monkey language word?


    • -3
      Selena_Liu  commented on July 7, 2017, 7:47 p.m.

      should be since it's a monkey-language word (BANANAS) followed by N, then by another monkey-language word.


  • 0
    TheKrishnan  commented on Feb. 9, 2017, 3:37 p.m.

    Is BBANANASS a monkey language word?


    • 0
      george_chen  commented on Feb. 9, 2017, 4:44 p.m.

      Yes because it is a 'B' followed by a monkey language word ("BANANAS") and followed by 'S'


  • 1
    septence123  commented on Jan. 22, 2017, 1:14 p.m.

    Is ANAANA a monkey language word?If not why?


    • -1
      Kirito  commented on Jan. 22, 2017, 1:47 p.m.

      No, since the two A words ANA do not have an N between them


  • -13
    bobbotboy  commented on June 13, 2015, 11:31 p.m. edit 2

    This comment is hidden due to too much negative feedback. Click here to view it.


    • -5
      Jeffmagma  commented on Nov. 22, 2016, 7:32 p.m.

      This comment is hidden due to too much negative feedback. Click here to view it.


    • -4
      HowAboutNo  commented on Feb. 16, 2016, 8:22 p.m.

      What?


  • -5
    Eli  commented on Feb. 2, 2015, 6:50 p.m.

    This comment is hidden due to too much negative feedback. Click here to view it.


    • 0
      Xyene  commented on Feb. 27, 2015, 12:01 p.m.

      You may now use System.exit; I've patched it to work.


      • 6
        BMP  commented on Feb. 27, 2015, 5:35 p.m.

        Just tell people to use return;


    • 1
      FatalEagle  commented on Feb. 2, 2015, 7:23 p.m.

      We block System.exit for security reasons.

      On the other hand, you could always use C++ and std::exit.


      • 6
        Sentient  commented on Feb. 2, 2015, 7:46 p.m.

        For Java, you could just use return to exit the main method, which will terminate the program


  • -5
    Yuting9  commented on Nov. 19, 2014, 8:12 p.m.

    This comment is hidden due to too much negative feedback. Click here to view it.


    • 2
      FatalEagle  commented on Nov. 19, 2014, 9:17 p.m.

      No, they are not monkey language words.


      • -5
        xxsc  commented on Oct. 23, 2017, 7:53 p.m. edited

        This comment is hidden due to too much negative feedback. Click here to view it.


      • -2
        xxsc  commented on Oct. 23, 2017, 7:47 p.m. edit 2

        Ok...you can ignore this.