CSES - Labyrintti

Annettuna on n \times m -ruudukko, joka esittää labyrinttiä. Tehtäväsi on laskea lyhimmän reitin pituus ruudusta A ruutuun B. Jokainen ruutu on joko lattiaa (.) tai seinää (#), ja jokainen reunalla oleva ruutu on seinää.

Voit olettaa, että 1 \le n, m \le 20. Jos mitään reittiä ei ole olemassa, palauta -1.

Python

Toteuta tiedostoon labyrinth.py funktio count, joka kertoo lyhimmän reitin pituuden.

def count(r):
    # TODO

if __name__ == "__main__":
    r = ["########",
         "#.A....#",
         "#.#.##.#",
         "#.##...#",
         "#...B#.#",
         "########"]
    print(count(r)) # 7

Java

Toteuta tiedostoon Labyrinth.java metodi count, joka kertoo lyhimmän reitin pituuden.

public class Labyrinth {
    public int count(String[] r) {
        // TODO
    }

    public static void main(String[] args) {
        Labyrinth l = new Labyrinth();
        String[] r = {"########",
                      "#.A....#",
                      "#.#.##.#",
                      "#.##...#",
                      "#...B#.#",
                      "########"};
        System.out.println(l.count(r)); // 7
    }
}