Dans

Time limit: 0.5s Memory limit: 64MB Input: dans.in Output: dans.outPoints by default: 10p

Tot tărâmul numericesc a fost invitat la balul din Numeradonia. Fiecare numerian (reprezentat printr-un număr natural nenul) a venit în sala de bal și încearcă să-și găsească perechea. Regula după care un numerian xx îl poate invita la dans pe un alt numerian yy este în funcție de dans:

  • Valsul prim: numerianul xx îl poate invita la dans pe numerianul yy dacă x+yx+y este număr prim.
  • Salsa fracțional: numerianul xx îl poate invita la dans pe numerianul yy dacă mulțimea cifrelor din yy este inclusă în mulțimea cifrelor din xx (fiecare cifră care apare în yy apare și în xx, cel puțin o dată; multiplicitatea nu contează).

Cifrimina își dorește să știe câți parteneri de dans ar putea găsi, în funcție de cerință.

Cerință

Se citește numărul natural CC (numărul cerinței), numărul natural nn, valoarea DD a Cifriminei și apoi un șir de nn numere naturale nenule a1,a2,,ana_1, a_2, \dots, a_n (numerienii din sală).

  1. Dacă C=1C=1, determinați pe câți numerieni îi poate invita Cifrimina la valsul prim (adică numărul de valori aia_i pentru care D+aiD + a_i este prim).
  2. Dacă C=2C=2, determinați pe câți numerieni îi poate invita Cifrimina la salsa fracțional (adică numărul de valori aia_i ale căror cifre apar toate în DD).

Observație: fiecare numerian este considerat distinct prin poziția sa în șir (dacă aceeași valoare apare de mai multe ori, fiecare apariție contează separat).

Date de intrare

Fișierul de intrare dans.in conține:

  • pe prima linie: CC, nn, DD;
  • pe a doua linie: nn numere naturale nenule a1,a2,a3,,ana_1, a_2, a_3, \dots, a_n separate prin spațiu.

Date de ieșire

Fișierul de ieșire dans.out va conține:

  • Dacă C=1C=1, atunci pe prima linie a fișierului de ieșire dans.out se va scrie un număr natural reprezentând numărul de numerieni din șir pe care îi poate invita Cifrimina la valsul prim, adică numărul de valori aia_i pentru care D+aiD + a_i este număr prim.
  • Dacă C=2C=2, atunci pe prima linie a fișierului de ieșire dans.out se va scrie un număr natural reprezentând numărul de numerieni din șir pe care îi poate invita Cifrimina la salsa fracțional, adică numărul de valori aia_i ale căror cifre apar toate în numărul DD (multiplicitatea cifrelor nu contează).

Restricții și precizări

  • 1n1061 \leq n \leq 10^6
  • 0D1060 \leq D \leq 10^6
  • 0ai1060 \leq a_i \leq 10^6
  • Pentru teste în valoare de 60 de puncte, C=1C=1.
  • Pentru teste în valoare de 40 de puncte, C=1C=1 și n103n \leq 10^3.
  • Pentru teste în valoare de 30 de puncte, C=2C=2.

Exemplul 1

dans.in

1 6 10
1 2 3 4 7 10

dans.out

3

Explicație

Verificăm sumele cu D=10D=10:

  • 10+1=1110+1=11 (prim);
  • 10+2=1210+2=12;
  • 10+3=1310+3=13 (prim);
  • 10+4=1410+4=14;
  • 10+7=1710+7=17 (prim);
  • 10+10=2010+10=20.

Răspuns: 33 parteneri.

Exemplul 2

dans.in

2 7 120
2001 33 5 101 12 222 900

dans.out

4

Explicație

Cifrele lui D=120D=120 sunt în mulțimea {0,1,2}\{0,1,2\}.

Acceptate:

  • 20012001{0,1,2}\{0,1,2\};
  • 101101{0,1}\{0,1\};
  • 1212{1,2}\{1,2\};
  • 222222{2}\{2\}.

Respinse:

  • 3333{3}\{3\};
  • 55{5}\{5\};
  • 900900{0,9}\{0,9\}.

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