Minimikeko sisältää luvut 1 \dots n. Kuinka monessa eri kohdassa luku k voi sijaita? Voit olettaa, että n on korkeintaan 100 ja että 1 \le k \le n.
Toteuta tiedostoon minheap.py
funktio count
, joka kertoo kuinka monessa eri kohdassa luku k voi sijaita.
def count(n, k): # TODO if __name__ == "__main__": print(count(1,1)) # 1 print(count(3,2)) # 2 print(count(5,4)) # 3 print(count(5,5)) # 3 print(count(10,9)) # 6 print(count(70,34)) # 68
Selitys: Tapauksessa n=3 lukua 2 ei voida sijoittaa keon juureen, sillä muuten luku 1 tulisi sjoittaa tämän alapuolelle, mikä rikkoisi minimikekoehdon. Kaikki muut paikat kuitenkin ovat mahdollisia paikkoja luvulle 2.