countall

Time limit: 0.2s Memory limit: 128MB Input: countall.in Output: countall.out

Kida vă oferă două numere NN și MM. Ea vă mai oferă și un șir AA, de NN numere naturale cuprinse între 00 și MM inclusiv. Șirul AA conține două tipuri de valori: valori cuprinse între 11 și MM, care nu pot fi schimbate, respectiv valori de 00, care pot fi înlocuite cu orice număr cuprins între 11 și MM.

Pentru un șir VV cu valori între 11 și MM, vom nota cu count(V)count(V) numărul de perechi (Vi,Vj)(V_i, V_j) de pe pozițiile ii și jj astfel încât i<ji < j și cmmdc(Vi,Vj)=1cmmdc(V_i, V_j) = 1.

Cerință

Se cere suma count(V)count(V) pentru toate șirurile distincte VV care se pot obține din șirul AA, înlocuind toate valorile de 00 cu numere cuprinse între 11 și MM. Deoarece acest număr poate să fie foarte mare, se cere restul împărțirii sale la 109+910^9 + 9.

Date de intrare

Pe prima linie din fișierul de intrare se află două numere NN și MM, iar pe a doua linie valorile din șirul AA, separate prin câte un spațiu.

Date de ieșire

Pe singura linie din fișierul de ieșire se află numărul SS, reprezentând restul împărțirii la 109+910^9 + 9 a sumei valorilor countcount pentru toate șirurile care se pot obține din șirul AA.

Restricții

  • 1N,M100 0001 \leq N,M \leq 100 \ 000
  • 0AiM0 \leq A_i \leq M, pentru orice ii de la 11 la NN.
# Punctaj Restricții
1 13 1N,M71 \leq N,M \leq 7
2 8 M=2M = 2
3 21 Șirul AA nu conține nicio valoare de 00.
4 23 Șirul AA conține doar valori de 00.
5 17 1N,M1 0001 \leq N,M \leq 1 \ 000
6 18 Nu există alte restricții

Exemple

countall.in

3 4
2 0 3

countall.out

9

Șirurile care se pot obține sunt:
[2,1,3][2, 1, 3], pentru care valoarea countcount este 33;
[2,2,3][2, 2, 3], pentru care valoarea countcount este 22;
[2,3,3][2, 3, 3], pentru care valoarea countcount este 22;
[2,4,3][2, 4, 3], pentru care valoarea countcount este 22;
Suma valorilor countcount este 3+2+2+2=93 + 2 + 2 + 2 = 9.

countall.in

3 2
0 0 2

countall.out

7

Șirurile care se pot obține sunt:
[1,1,2][1, 1, 2], pentru care valoarea countcount este 33;
[1,2,2][1, 2, 2], pentru care valoarea countcount este 22;
[2,1,2][2, 1, 2], pentru care valoarea countcount este 22;
[2,2,2][2, 2, 2], pentru care valoarea countcount este 00;
Suma valorilor countcount este 3+2+2+0=73 + 2 + 2 + 0 = 7.

Log in or sign up to be able to send submissions!