Model subiect olimpiada de informatică, clasa a 12-a, faza județeană

1 - biperm    pag. 1 din 1 
Problema  1 – biperm 100 puncte 
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 joș
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. 
 
1 5 5 3 4  1 2 5 3 4  3 2 5 4 1 
3 2 2 4 1  3 5 2 4 1  1 5 2 3 4 
Figura 1  Figura 2  Figura 3 
Cerinţe 
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 prin tr-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 şi precizări 
• 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, i ndiferent 
de corectitudinea lor; 
• pentru 40% din teste n  20  
• pentru 40% din teste 20 < n  400 
• pentru 20% din teste 400 < n  10 000 

2 - subsecvente    pag. 1 din 1 
Problema 2 - subsecvente 100 puncte 
 
Fie n un număr natural și M={S1,S2,…,Sn} o mulțime de șiruri de caractere nevide.  Fie Sk un șir de 
caractere din M. Atunci, orice caracter al lui Sk aparține mulțimii { 'a', 'b' }. Notăm prin |Sk| numărul 
caracterelor șirului Sk sau, echivalențlungimea sa. O subsecvență Sk[i:j] a lui Sk este formată din 
caracterele situate pe  pozițiile consecutive i, i+1, .., j. Astfel, dacă Sk = 'abbbaababa', atunci 
Sk[3:6] = 'bbaa' sau subsecvența evidențiată: 'abbbaababa'. 
 
Cerință 
Fiind dată o mul țime M, se cere să se determine lungimea maximă a unei subsecven țe care se găse ște în 
toate șirurile din M. 
 
Date de intrare 
Pe prima linie a fi șierului de intrare subsecvente.in se găsește un număr natural n egal cu cardinalul 
mulțimii M. Pe fiecare din următoarele n linii se găsește câte un șir din mulțimea M. 
 
Date de ieșire 
Pe prima linie a fi șierului de ie șire subsecvente.out se va scrie un singur număr natural egal cu 
lungimea subsecvenței găsite. 
 
Restricții 
• 1 < n < 5 
• Dacă |S| = |S1| + |S2| + … + |Sn|, atunci |S| < 50 001 
• Se garantează că va exista întotdeauna soluție 
• Se garantează că rezultatul nu va depăși 60 
• Pentru 30% din teste: |S| < 101 
• Pentru 55% din teste: |S| < 3 501 
• Pentru 80% din teste: |S| < 10 001