Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | permbit.in, permbit.out | Sursă | Algoritmiada 2018 Runda PreONI |
Autor | Eugenie Daniel Posdarascu | Adăugată de | |
Timp execuţie pe test | 0.5 sec | Limită de memorie | 262144 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Permbit
Se da un sir de M biti. Se permuta cu permutarea P de ordin M. Noul sir se cunoaste si se permuta din nou, tot cu permutarea P. Si tot asa. Pana se obtin N siruri. Gasiti:
a) Numarul de permutari P corecte
b) O permutare P oarecare corecta
c) Permutarea mediana P (sortand lexicografic toate permutarile corecte, se considera cea care se afla la mijloc - in caz ca sunt permutari la mijloc, se considera cea mai mica lexicografic)
Date de intrare
Fişierul de intrare permbit.in are pe prima linie numerele C, N si M, iar pe urmatoarele N linii cate un sir de M biti. C reprezinta tipul cerintei: 0 pentru cerinta a), 1 pentru cerinta b), 2 pentru cerinta c).
Date de ieşire
În fişierul de ieşire permbit.out se afla, daca C = 0, numarul de permutari corecte modulo 1.000.000.007, iar daca nu, o permutare, dupa caz, oarecare sau mediana.
Restrictie
- 2 ≤ N, M
Punctare
- 5 puncte: N, M ≤ 8; C = 0
- 5 puncte: N, M ≤ 8; C = 1
- 10 puncte: N, M ≤ 100; C = 0
- 10 puncte: N, M ≤ 100; C = 1
- 10 puncte: N, M ≤ 100; C = 2
- 10 puncte: N * M ≤ 106; C = 1
- 20 de puncte: N * M ≤ 106; C = 2
- 30 de puncte: N * M ≤ 106; C = 0
Exemplu
permbit.in | permbit.out |
---|---|
This is some text written on multiple lines. | This is another text written on multiple lines. |
Explicaţie
...