Mai intai trebuie sa te autentifici.
Diferente pentru problema/matrita intre reviziile #14 si #42
Diferente intre titluri:
matrita
Matrita
Diferente intre continut:
== include(page="template/taskheader" task_id="matrita") ==
Plictisit deinmultirea polinoamelorin timp liniar, de rezolvarea conjecturilor sau a altor banalitati precum “Traveling salesman problem”, Nry s-a decis saporneascain cautarea secretului fericirii eterne. Privindinsain jurul sau, a constatat cu stupoare caolimpicii recurg la tehnici necuratein acest joc pentru satisfactie, de la sustrasul subtil al surselor sau al ideilor de probleme, panala acte mult mai grave, precuminsusirea locurilor la IOI sau a editiilor precedente de Junior Challenge. Dorindinsasafie original (si sapastrezein acelasi timp noua traditie), Nry a ajuns la urmatoarea concluzie: trebuie sasubtilizeze 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 să 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, până la acte mult mai grave, precum însuşirea locurilor la $IOI$ sau a ediţiilor precedente de Junior Challenge. Dorind însă să fie original (şi să păstreze în acelaşi timp noua tradiţie), $Nry$ a ajuns la următoarea concluzie: trebuie să subtilizeze Matriţa!
Odataajunsin posesia elixirului magic, acesta l-a asezatintr-un coltal Beciului Olimpic (unul din cele mai sigure adaposturi,in care dusmanii pot patrunde doar prin tavanul de sticla).Insa, pentru a se asigura canoua sa achizitie nu va dispareain mod neasteptat, acesta a decis saformeze un sistem de apararein modul urmator: el a privit Beciul ca o matrice patratica de latura$N + 1$ (liniilesi coloanele sunt numerotate de la 0 la N), Matrita aflandu-sein patratul aflat pe linia 0si coloana 0. El doreste saplaseze mai multe capcanein patrate cu indicii liniilorsi aicoloanelor cuprinsi intre $1$si $N$, astfelincat fiecare capcanasafie vizibiladin punctulin care se aflaMatrita (cu alte cuvinte, sanu existe douacapcane situatein $(l1, c1)$, respectiv $(l2, c2)$si un numarnatural $k$ cu proprietatea ca$x1 = x2 * k$ si $y1 = y2 * k$).
Odată ajuns în posesia elixirului magic, acesta l-a aşezat într-un colţ al Beciului Olimpic (unul din cele mai sigure adăposturi, în care duşmanii pot pătrunde doar prin tavanul de sticlă). Însă, pentru a se asigura că 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 latură $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 să plaseze mai multe capcane în pătrate cu indicii liniilor şi al coloanelor cuprinşi intre $1$ şi $N$, astfel încât fiecare capcană să fie vizibilă din punctul în care se află Matriţa (cu alte cuvinte, să nu existe două 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 varoagasaraspundeti la urmatoareaintrebare:stiind numarul $N$,in cate moduri isipoate construi el sistemul de aparare al Matritei?
$Nry$ vă roagă să 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$**.
h2. Date de intrare
Fişierul de intrare $matrita.in$ ...
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ţ.
h2. Date de ieşire
În fişierul de ieşire $matrita.out$ ...
Î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$**.
h2. Restricţii
* Nry dispune de un numar nelimitat de capcane * Fiind foarte paranoic, acesta va plasaintotdeauna cel putin o capcana
* $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$
* Pentru teste in valoare 5 puncte $N ≤ 10$ * Pentru alte teste in valoare de 10 puncte $N ≤$ (N^2logN) * Pentru alte teste in valoare de 15 de puncte $N ≤$ (N^2) * Pentru alte teste in valoare de 30 de puncte $N ≤ 750.000$ * Pentru alte teste in valoare de 30 de puncte $N ≤ 5.000.000$ * Pentru alte teste in valoare de 10 puncte $N ≤ 12.000.000$ * Legenda spune ca oricine gusta din Matrita are un loc asigurat la IOI 2020
* $100.000.000 ≤ MOD ≤ 1.000.001.000$ * $Subtask 1 (testele 1 - 2) - 10 puncte: N ≤ 1.800$ * $Subtask 2 (testele 3 - 4)- 5 puncte: N ≤ 3.000$ * $Subtask 3 (testele 5 - 7)- 5 de puncte: N ≤ 4.000$ * $Subtask 4 (testele 8 - 12)- 30 de puncte: N ≤ 300.000$ * $Subtask 5 (testele 13 - 17)- 10 de puncte: N ≤ 750.000$ * $Subtask 6 (testele 18 - 22)- 25 puncte: N ≤ 6.500.000$ * $Subtask 7 (testele 23 - 27)- 5 puncte: N ≤ 10.000.000$ * $Subtask 8 (testele 28 - 30)- 10 puncte: N ≤ 12.000.000$ * Legenda spune ca oricine gusta din Matriţă are un loc asigurat la $IOI 2020$
h2. Exemplu table(example). |_. matrita.in |_. matrita.out |
| 1
| 1 1000000007
| 1 |
| 2
| 2 1000000007
| 11 |
| 5
| 5 1000000007
| 3538943 |
| 768325
| 768325 1000000007
| 667479250 | h3. 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)}.
Nry considera ca o explicatie a ultimelor doua exemple ar fi inadecvat de lunga.
Configuratia {(1, 1), (2, 2)} nu poate fi aleasa deoarece capcana (2, 2) nu este vizibila. Nry considera că o explicaţie a ultimelor două exemple ar fi inadecvat de lunga.
== include(page="template/taskfooter" task_id="matrita") ==