COCI '07 Contest 1 #2 PEG

View as PDF

Submit solution

Points: 5
Time limit: 1.0s
Memory limit: 32M

Problem types
Allowed languages
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, CommonLisp, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, Nim, ObjC, OCaml, Octave, Pascal, Perl, PHP, Pike, Prolog, Python, Racket, Ruby, Rust, Scala, Scheme, Sed, Swift, TCL, Text, Turing, VB, Zig

In the famous logic game Peg, pieces jump over other pieces to remove them from the game, until only one piece is left.

Here is the initial layout of the board:

  ooo
  ooo
ooooooo
ooo.ooo
ooooooo
  ooo
  ooo

The lowercase letter o represents a piece, while the character . is an empty square. In one move, a player may choose one piece and one of the four main directions (up, down, left, right), if there is another piece in that direction, and an empty square behind it. The chosen piece jumps over the other piece and settles in the empty square behind it, while the piece being jumped over is removed from the game.

Write a program that calculates the number of legal moves, given the state of the board.

Input Specification

The board is represented by seven lines containing seven characters each. The first two and last two characters on the first two and last two lines are always spaces, and all remaining characters are either o (lowercase letter) or . (period character).

Output Specification

Output the number of legal moves.

Sample Input 1

  ooo  
  ooo  
ooooooo
ooo.ooo
ooooooo
  ooo  
  ooo  

Sample Output 1

4

Sample Input 2

  ooo  
  ooo  
..ooo..
oo...oo
..ooo..
  ooo  
  ooo  

Sample Output 2

12

Comments


  • 2
    Kirito  commented on March 9, 2017, 11:35 a.m. edit 2
      ooo
      ooo
    .1ooo1.
    oo323oo
    .1ooo1.
      ooo
      ooo

    The numbers are how many pieces can reach the given square.


  • 1
    TypicalToxic  commented on March 9, 2017, 10:08 a.m.

    Explanation for input 2?

      ooo
      ooo
    ..111..
    12...21
    ..111..
      ooo
      ooo

    ??