Tehtäväsi on muodostaa ratsuista mahdollisimman monta paria, jotka uhkaavat toisiaan. Jokainen ratsu voi kuulua enintään yhteen pariin.
Ratsut uhkaavat toisiaan, jos niiden vaaka- ja pystyetäisyyksistä toinen on $1$ ja toinen on $2$ (shakin sääntöjen mukaisesti).
Laudan kuvauksessa merkki
.
tarkoittaa tyhjää ruutua ja merkki *
tarkoittaa ratsua.Python
Toteuta tiedostoon
knightpairs.py
funktio count
, joka antaa suurimman parien määrän.def count(r): # TODO if __name__ == "__main__": r = ["*.......", "..*...*.", "........", ".*......", "...*....", ".......*", "........", "......*."] print(count(r)) # 3Java
Toteuta tiedostoon
KnightPairs.java
metodi count
, joka antaa suurimman parien määrän.public class KnightPairs { public int count(String[] r) { // TODO } public static void main(String[] args) { KnightPairs k = new KnightPairs(); String[] r = {"*.......", "..*...*.", "........", ".*......", "...*....", ".......*", "........", "......*."}; System.out.println(k.count(r)); // 3 } }