CSES - Kaikki alijonot

Annettuna on lista, jossa on nn kokonaislukua. Tehtäväsi on laskea, montako nousevaa alijonoa listassa on.

Voit olettaa, että 1n1001 \le n \le 100. Algoritmisi tulee toimia tehokkaasti kaikissa tapauksissa.

Toteuta tiedostoon countseq.py funktio count, joka palauttaa tehtävän vastauksen.

def count(t):
    # TODO

if __name__ == "__main__":
    print(count([1, 1, 2, 2, 3, 3])) # 26
    print(count([1, 1, 1, 1])) # 4
    print(count([5, 4, 3, 2, 1])) # 5
    print(count([4, 1, 5, 6, 3, 4, 1, 8])) # 37

Selitys: Listan [1,1,2,2,3,3][1,1,2,2,3,3] nousevat alijonot ovat [1,2,3][1,2,3] (88 kertaa), [1,2][1,2] (44 kertaa), [1,3][1,3] (44 kertaa), [2,3][2,3] (44 kertaa), [1][1] (22 kertaa), [2][2] (22 kertaa) sekä [3][3] (22 kertaa).