.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » biperm

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
biperm


Timp maxim de execuţie / test:
0.2s
Memorie totala disponibilă / stivă:
128MB / 64MB

Pentru un număr natural nenul n, să considerăm toate numerele naturale nenule mai mici sau egale cu n, luând fiecare număr de câte două ori: 1, 1, 2, 2, 3, 3, ... , n, n. Aceste numere le amestecăm aleator, şi le aranjăm pe două linii a câte n elemente. Structura astfel obţinută o vom numi o bipermutare. În figurile 1, 2 şi 3 avem câte un exemplu de bipermutare pentru n=5.
O bipermutare este perfectă, dacă ambele linii ale structurii reprezintă câte o permutare (vezi figurile 2 şi 3).
Prin mutare pe poziţia p, înţelegem interschimbarea elementelor de pe aceeaşi coloană p. În exemplele de mai jos, bipermutarea perfectă din figura 2 s-a obţinut din bipermutarea din figura 1, aplicând o mutare pe poziţa 2. Bipermutarea perfectă din figura 3 s-a obţinut din bipermutarea din figura 1, aplicând mutări pe poziţiile 1, 2, 4 şi 5.


Cerinţă

Cunoscând o bipermutare, determinaţi:
• numărul bipermutărilor perfecte distincte ce se pot obţine prin mutări;
• numărul minim de mutări prin care se poate obţine o bipermutare perfectă;
• o bipermutare perfectă obţinută din bipermutarea iniţială.

Date de intrare

Fişierul de intrare biperm.in conţine pe prima linie valoarea lui n. Următoarele două linii conţin, fiecare, câte n elemente separate prin câte un spaţiu, formând o bipermutare.

Date de ieşire

Fişierul de ieşire biperm.out va conţine:
• pe prima linie două numere naturale separate printr-un spaţiu, reprezentând numărul bipermutărilor perfecte distincte ce se pot obţine din bipermutarea dată, respectiv numărul minim de mutări prin care se poate obţine o bipermutare perfectă;
• pe următoarele două linii se vor tipări câte n numere separate prin spaţiu, reprezentând o bipermutare perfectă obţinută din bipermutarea dată.

Restricţii

2 < n <= 10 000
• calculul corect al numărului bipermutărilor perfecte distincte valorează 30% din punctaj;
• calculul corect al numărului minim de mutări valorează 10% din punctaj;
• tipărirea unei bipermutări perfecte valorează 60% din punctaj. Pot exista mai multe soluţii, se va admite orice soluţie corectă;
• se garantează că numărul bipermutărilor perfecte distincte nu depăşeşte 2 000 000 000 pentru niciun test.
• acordarea punctajului la un răspuns corect este condiţionată de existenţa răspunsurilor anterioare, indiferent de corectitudinea lor;
• pentru 40% din teste n <= 20
• pentru 40% din teste 20 < n <= 400
• pentru 20% din teste 400 < n <= 10 000

Exemple

biperm.inbiperm.outExplicaţii
5 1 5 5 3 4 3 2 2 4 1 4 1 1 2 5 3 4 3 5 2 4 1 Sunt 4 permutări perfecte. Numărul minim de mutări este 1 şi există două soluţii cu număr minim de mutări:
1 2 5 3 4
3 5 2 4 1
şi
1 5 2 3 4
3 2 5 4 1
Celelalte două soluţii, ce nu se obţin din număr minim de mutări sunt:
3 2 5 4 1
1 5 2 3 4
şi
3 5 2 4 1
1 2 5 3 4
Pentru a treia cerinţă oricare dintre cele 4 soluţii este acceptată.

autor: Prof. Zoltan Szabo
propunător: Prof. Emanuela Cerchez
Colegiul Naţional ″Emil Racoviţă″
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
surse trimise | ajutor