CSES - Datatähti 2022 loppu - Sokkelo
  • Language:
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Justiina ja Kotivalo ovat n \times m -kokoisessa sokkelossa. Sokkelossa voi liikkua lattiaruutuja pitkin pysty- ja vaakasuunnassa. Samassa ruudussa voi olla enintään yksi henkilö.

Kahden ruudun välinen etäisyys on Manhattan-etäisyys, eli kun ruudut ovat (y_1,x_1) ja (y_2,x_2), niiden etäisyys on |y_1-y_2|+|x_1-x_2|.

Tehtäväsi on selvittää, kuinka lähelle toisiaan Justiina ja Kotivalo voivat päästä, jos he liikkuvat optimaalisesti.

Syöte

Ensimmäisellä rivillä on kaksi kokonaislukua n ja m: sokkelon korkeus ja leveys.

Tämän jälkeen tulee sokkelon kuvaus: n riviä, joista jokaisella on m merkkiä. Merkki voi olla . (lattia), # (seinä), A (Justiinan alkukohta) tai B (Kotivalon alkukohta).

Voit olettaa, että jokainen reunaruutu on seinää ja merkkejä A ja B on molempia tasan yksi syötteessä.

Tuloste

Tulosta yksi kokonaisluku: pienin mahdollinen etäisyys.

Esimerkki 1

Syöte:

5 8
########
#A#.#.B#
#.#.####
#...#..#
########

Tuloste:

2

Esimerkki 2

Syöte:

5 8
########
#A#...B#
#.#.####
#...#..#
########

Tuloste:

1

Osatehtävä 1 (28 pistettä)

  • 3 \le n,m \le 20

Osatehtävä 2 (72 pistettä)

  • 3 \le n,m \le 1000