CSES - Peitteet Tehtäväsi on laskea, monellako tavalla $n \times m$ suorakulmio voidaan peittää käyttämällä korkeintaan $k$ suorakulmiota. Kaikissa suorakulmioissa sivujen pituudet ovat kokonaislukuja.

Esimerkiksi $2 \times 3$ suorakulmio voidaan peittää yhteensä $13$ tavalla, kun suorakulmioita saa käyttää korkeintaan $3$:

Voit olettaa, että $n$ ja $m$ ovat välillä $1 \dots 4$ ja $k$ on välillä $1 \dots nm$.

Python

Toteuta tiedostoon cover.py funktio count, joka antaa peittotapojen määrän.
def count(n, m, k):
    # TODO

if __name__ == "__main__":
    print(count(2,2,4)) # 8
    print(count(2,3,3)) # 13
    print(count(4,4,1)) # 1
    print(count(4,3,10)) # 3146
    print(count(4,4,16)) # 70878
Java

Toteuta tiedostoon Cover.java metodi count, joka antaa peittotapojen määrän.
public class Cover {
    public int count(int n, int m, int k) {
        // TODO
    }

    public static void main(String[] args) {
        Cover c = new Cover();
        System.out.println(c.count(2,2,4)); // 8
        System.out.println(c.count(2,3,3)); // 13
        System.out.println(c.count(4,4,1)); // 1
        System.out.println(c.count(4,3,10)); // 3146
        System.out.println(c.count(4,4,16)); // 70878
    }
}