| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 0.5 초 | 1024 MB | 1 | 1 | 1 | 100.000% |
Mały Bajtek otrzymał ostatnio pudełko zawierające N patyczków. Każdy patyczek ma swoją długość będącą liczbą naturalną między 1 a M włącznie.
Bajtek bardzo nie lubi trójkątów. Do tego stopnia, że chciałby pozostawić w pudełku jedynie niektóre patyczki (wyrzucając pozostałe do śmietnika), aby uzyskać pudełko antytrójkątowe tzn. takie, że z pozostawionych w nim patyczków nie jest możliwe wybranie trzech, z których można zbudować trójkąt. Z trzech patyczków o długościach a, b, c można zbudować trójkąt, jeśli suma długości każdych dwóch patyczków jest większa od długości trzeciego patyczka, innymi słowy: a + b > c, a + c > b oraz b + c > a. Patyczków nie można łamać, ani sklejać.
Przykładowo, pudełko zawierające patyczki o długościach (1, 1, 3, 4) jest antytrójkątowe, a pudełko z patyczkami o długościach (1, 2, 2, 3) nie jest (bo z patyczków o długościach 2, 2 i 3 można zbudować trójkąt).
Bajtek zastanawia się teraz, na ile sposobów może pozostawić niektóre z patyczków, aby uzyskać niepuste pudełko antytrójkątowe. Dwa sposoby uznajemy za różne jeśli istnieje długość x taka, że liczba pozostawionych w pudełkach patyczków o długości x jest różna. Zwróć uwagę, że według tej definicji patyczki o tej samej długości są nierozróżnialne.
Napisz program, który wczyta liczby N, M oraz długości patyczków, które Bajtek początkowo otrzymał w swoim pudełku i wyznaczy liczbę sposobów na jakie można uzyskać niepuste pudełko antytrójkątowe.
W pierwszym wierszu wejścia znajdują się dwie liczby naturalne N, M (1 ≤ N, M ≤ 1 500). W drugim wierszu wejścia znajduje się N liczb naturalnych a1, a2, . . . , an (1 ≤ ai ≤ M) oznaczających długości patyczków w pudełku.
W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna liczba całkowita – liczba sposobów na jakie Bajtek może uzyskać niepuste pudełko antytrójkątowe. Wartość wyniku dla podanych ograniczeń nigdy nie przekroczy 1018.
8 4 1 1 2 2 3 3 4 4
24
Wyjaśnienie do przykładu: W tym przypadku Bajtek może skonstruować następujące pudełka antytrójkątowe:
4 8 1 2 4 8
15
Wyjaśnienie do przykładu: W tym przypadku każde możliwe do uzyskania pudełko jest antytrójkątowe.
2 1500 1 1500
3
Wyjaśnienie do przykładu: Podobnie w tym przypadku, każde niepuste pudełko możliwe do uzyskania jest antytrójkątowe, jako że potrzeba trzech patyczków, aby zbudować trójkąt.