QOJ.ac

QOJ

時間限制: 1 s 記憶體限制: 512 MB

#23558. Gra losowa

统计

Ekipa programu 1박2일 zaproponowała nową grę losową. Gracz otrzymuje najpierw $K$ kamyków i obraca kołem z liczbami $N$ razy. Po każdym obrocie musi oddać ekipie tyle kamyków, ile wynosi wylosowana liczba. Gracz wygrywa, jeśli może oddać wymaganą liczbę kamyków przy wszystkich $N$ obrotach, a przegrywa, gdy zabraknie mu kamyków na wymaganą zapłatę.

Na kole zapisano $T$ liczb całkowitych z przedziału od $0$ do $T-1$ włącznie. Liczby mogą się powtarzać i nie każda liczba od $0$ do $T-1$ musi występować na kole.

Mając dane $N$, $K$, $T$ i wszystkie liczby na kole, napisz program obliczający liczbę sposobów, na jakie gracz może wygrać.

Jeśli ta sama liczba występuje na kole wielokrotnie, jej wystąpienia liczy się jako różne możliwości, mimo że mają tę samą wartość.

Na przykład, gdy na kole są liczby $0$, $1$, $1$, $2$, $4$, $5$, gracz ma sześć kamyków i obraca kołem dwa razy, istnieje $30$ sposobów wygranej. Jeśli pierwsza liczba to $0$ lub $1$, gracz wygra niezależnie od drugiej. Jeśli pierwsza liczba to $2$, jest pięć możliwości, z wyłączeniem drugiej liczby $5$. Dla pierwszej liczby $4$ są cztery możliwości, a dla $5$ — trzy.

Wejście

Pierwszy wiersz zawiera trzy liczby całkowite $N$, $K$, $T$, oddzielone spacjami. $N$ oznacza liczbę obrotów, $K$ początkową liczbę kamyków gracza, a $T$ liczbę liczb na kole. Zachodzi $1 \le N \le 100\,000$, $1 \le K \le 1\,000$ oraz $2 \le T \le 20\,000$.

W kolejnych $T$ wierszach, począwszy od drugiego, podano po jednej liczbie całkowitej zapisanej na kole.

Wyjście

W pierwszym wierszu wypisz liczbę sposobów wygranej gracza modulo $42\,043$.

Przykład

Wejście 1

2 6 6
0
1
1
2
4
5

Wyjście 1

30

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.