Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2018-06-13 21:01:51.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:matrita.in, matrita.outSursăJunior Challenge 2018
AutorAndrei ComanAdăugată deJuniorChallenge2018Junior Challenge JuniorChallenge2018
Timp execuţie pe test0.5 secLimită de memorie524288 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Matrita

Plictisit de înmulţirea polinoamelor în timp liniar, de rezolvarea conjecturilor sau a altor banalităţi precum “Traveling salesman problem”, Nry s-a decis sa pornească în căutarea secretului fericirii eterne. Privind însa în jurul său, a constatat cu stupoare că olimpicii recurg la tehnici necurate în acest joc pentru satisfacţie, de la sustrasul subtil al surselor sau al ideilor de probleme, pana la acte mult mai grave, precum însuşirea locurilor la IOI sau a ediţiilor precedente de Junior Challenge. Dorind însa sa fie original (şi să păstreze în acelaşi timp noua tradiţie), Nry a ajuns la următoarea concluzie: trebuie sa subtilizeze Matriţa!

Odată ajuns în posesia elixirului magic, acesta l-a aşezat într-un colt al Beciului Olimpic (unul din cele mai sigure adăposturi, în care duşmanii pot pătrunde doar prin tavanul de sticla). Însa, pentru a se asigura ca noua sa achiziţie nu va dispărea în mod neaşteptat, acesta a decis să formeze un sistem de apărare în modul următor: el a privit Beciul ca o matrice pătratica de latura N + 1 (liniile şi coloanele sunt numerotate de la 0 la N), Matriţa aflându-se în pătratul aflat pe linia 0 şi coloana 0. El doreşte sa plaseze mai multe capcane în pătrate cu indicii liniilor şi al coloanelor cuprinşi intre 1 şi N, astfel încât fiecare capcana să fie vizibilă din punctul în care se afla Matriţa (cu alte cuvinte, sa nu existe doua capcane situate în (l1, c1), respectiv (l2, c2) şi un număr real k cu proprietatea că x1 = x2 * k si y1 = y2 * k).

Nry vă roagă sa răspundeţi la următoarea întrebare: ştiind numărul N, în câte moduri îşi poate construi el sistemul de apărare al Matriţei? Răspunsul trebuie afişat modulo MOD (un număr prim citit din fişierul de intrare).

Date de intrare

Fişierul de intrare matrita.in conţine o singura linie pe care sunt scrise doua numere, N şi MOD, cu semnificaţia din enunţ.

Date de ieşire

În fişierul de ieşire matrita.out veţi afişa un singur număr natural, şi anume răspunsul cerinţei modulo MOD.

Restricţii

  • Nry dispune de un număr nelimitat de capcane
  • Fiind foarte paranoic, acesta va plasa întotdeauna cel putin o capcana
  • 1 ≤ N ≤ 12.000.000
  • 100.000.000 ≤ MOD ≤ 1.000.020.000, MOD e număr prim
  • Subtask 1 - 5 puncte: N ≤ 10 şi MOD = 1.000.000.007
  • Subtask 2 - 10 puncte: N ≤ 19.00 si MOD = 1.000.000.007
  • Subtask 3 - 15 de puncte: N ≤ 4.250 şi MOD = 1.000.000.007
  • Subtask 4 - 30 de puncte: N ≤ 750.000
  • Subtask 5 - 30 de puncte: N ≤ 5.000.000
  • Subtask 6 - 10 puncte: N ≤ 12.000.000
  • Legenda spune ca oricine gusta din Matriţă are un loc asigurat la IOI 2020

Exemplu

matrita.inmatrita.out
1 1000000007
1
2 1000000007
11
5 1000000007
3538943
768325 1000000007
667479250

Explicaţie

Pentru primul exemplu, el poate doar sa amplaseze o capcana in patratul (1, 1).

Pentru cel de-al doilea exemplu, sunt valide urmatoarele configuratii:
{(1, 1)}, {(1, 1), (1, 2)}, {(1, 1), (2, 1)}, {(1, 1), (1, 2), (2, 1)},
{(2, 2)}, {(2, 2), (1, 2)}, {(2, 2), (2, 1)}, {(2, 2), (1, 2), (2, 1)},
{(1, 2)}, {(2, 1)}, {(1, 2), (2, 1)}.
Configuratia {(1, 1), (2, 2)} nu poate fi aleasa deoarece capcana (2, 2) nu este vizibila.

Nry considera ca o explicatie a ultimelor doua exemple ar fi inadecvat de lunga.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?