CSES - Eri luvut

Sinulle annetaan lista lukuja ja tehtäväsi on laskea, monessako alilistassa jokainen luku on eri luku.

Esimerkiksi vastaus listalle [1,2,1,1,2] on 8, koska halutut alilistat ovat [1] (kolmesti), [2] (kahdesti), [1,2] (kahdesti) sekä [2,1].

Voit olettaa, että listassa on enintään 10^5 lukua ja jokainen luku on välillä 1 \dots 10^9.

Python

Tee tiedostoon alldistinct.py funktio count, joka antaa alilistojen määrän.

def count(t):
    # TODO

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

Java

Tee tiedostoon AllDistinct.java metodi count, joka antaa alilistojen määrän.

public class AllDistinct {
    public long count(int[] t) {
        // TODO
    }

    public static void main(String[] args) {
        AllDistinct a = new AllDistinct();
        System.out.println(a.count(new int[] {1,2,3,4,5})); // 15
        System.out.println(a.count(new int[] {1,1,1,1,1})); // 5
        System.out.println(a.count(new int[] {1,2,1,1,2})); // 8
    }
}