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
}
}
