Rezolvare PBinfo #4466

Decorative Icon Problema: CountAll / 4466

Decorative IconAutor: Deivid

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

Pentru un șir V, cu valori între 1 și M, vom nota cu count(V) numărul de perechi (V[i], V[j]) de pe pozițiile i și j astfel încât i < j și cmmdc(V[i], V[j]) = 1.

Cerința

Se cere suma count(V) pentru toate șirurile distincte V care se pot obține din șirul A, înlocuind toate valorile de 0 cu numere cuprinse între 1 și M. Deoarece acest număr poate să fie foarte mare, se cere restul împărțirii sale la 1.000.000.009.

Date de intrare

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

Date de ieșire

Fișierul de ieșire countall.out va conține pe prima linie numărul S, reprezentând restul împărțirii la 1.000.000.009 a sumei valorilor count pentru toate șirurile care se pot obține din șirul A.

Restricții și precizări
  • 1 ≤ N, M ≤ 100.000
  • 0 ≤ A[i] ≤ M, pentru orice i de la 1 la N
  • Pentru 13 puncte, 1 ≤ N,M ≤ 7
  • Pentru 8 puncte, M = 2
  • Pentru 21 puncte, șirul A nu conține nicio valoare de 0
  • Pentru 23 puncte, șirul A conține doar valori de 0
  • Pentru 17 puncte, 1 ≤ N, M ≤ 1.000
  • Pentru 18 puncte, fără restricții suplimentare
Exemplul 1:

countall.in

3 4
2 0 3

countall.out

9

Explicație

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

Exemplul 2:

countall.in

3 2
0 0 2

countall.out

7

Explicație

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

Decorative Icon Explică rezolvarea folosind Inteligența Artificială

Folosește modelul nostru de AI special antrenament pentru a rezolva problemele de pe PBinfo! În baza creditelor AI primești explicații pentru probleme, pe care le alegi și le rulezi exact atunci când dorești, la un singur click distanță! Află mai multe informații:

👉 Achiziționează credite AI
Andrei Frîntu
Andrei Frîntu

Fondatorul platformei - mentor Academia

LinkedIn Instagram GitHub
© Copyright 2026 - CodulLuiAndrei.ro - Toate drepturile sunt rezervate