Annettuna on shakkilauta, jossa on ruutua. Jokainen ruutu on joko tyhjä tai siinä on ratsu. Laudan kuvauksessa merkki .
tarkoittaa tyhjää ruutua ja merkki *
tarkoittaa ratsua.
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 ja toinen on (shakin sääntöjen mukaisesti).
Toteuta tiedostoon knights.py
funktio count_pairs
, joka antaa suurimman parien määrän.
def count_pairs(grid): # TODO if __name__ == "__main__": grid = ["*.......", "..*...*.", "........", ".*......", "...*....", ".......*", "........", "......*."] print(count_pairs(grid)) # 3 grid = ["*.***.**", "*******.", "*.**.**.", "***.****", "..****.*", "********", "*.******", "***.**.*"] print(count_pairs(grid)) # 25