Cerința
Se dau două permutări de ordin N.
Se precizează tipul T al cerinţei, care poate fi 1 sau 2:
1) Dacă T=1, atunci se cere să se afle câte permutări de ordin N se pot obţine după N paşi de “intercalare” a celor două permutări.
2) Dacă T=2, atunci se cere să se afle câte permutări distincte de ordin N se pot obţine după N paşi de “intercalare” a celor două permutări.
Date de intrare
Fişierul de intrare abperm.in conţine pe primul rând numerele T şi N. Pe al doilea rând, separate prin câte un spaţiu, se află elementele permutării a[], iar pe al treilea rând, separate prin spaţiu, se află elementele permutării b[].
Date de ieșire
În fişierul de ieşire abperm.out pe primul rând se află un singur număr natural reprezentând numărul cerut conform tipului cerinţei.
Restricții și precizări
1 ≤ N ≤ 100.000- Deoarece valorile cerute pot fi numere foarte mari se cere calcularea acestor valori modulo
1.000.000.007 - În general, prin „intercalare” a două şiruri
a[]şib[], de lungiminşi respectivm, se înţelege determinarea unui nou şirc[], de lungimen+m, care conţine toate elementele celor două şiruria[]şib[]. Elementele şirurilora[]şib[]formează subşiruri înc[]. Dacă pentru primelekelemente dinc[]au fost folosite primeleielemente dina[]şi primelejelemente dinb[], atunci pentru elementul alk+1-leadinc[]va fi folosita[i+1]saub[j+1]. La fiecare pas de intercalare se adaugă încă un element sirului care se construieştec[].
Exemplul 1:
abperm.in
1 3 1 2 3 3 2 1
abperm.out
8
Explicație
După 3 paşi de intercalare se pot obţine permutările: 1 2 3, 1 2 3, 1 3 2, 1 3 2, 3 1 2, 3 1 2, 3 2 1, 3 2 1.
Exemplul 2:
abperm.in
2 3 1 2 3 3 2 1
abperm.out
4
Explicație
După 3 paşi de intercalare se pot obţine 4 permutări distincte: 1 2 3, 1 3 2, 3 1 2, 3 2 1.