Documente Academic
Documente Profesional
Documente Cultură
Problema dreptunghi
Fisier intrare: standard input
Fisier iesire: standard output
1
Olimpiada Societăt, ii pentru Excelent, ă s, i Performant, ă ı̂n Informatică
Etapa Judet, eană, 14 martie 2021
Clasele XI-XII
Pentru stabilirea ordinii lexicografice a două codificări, fiecare informat, ie compactă ce face parte din
secvent, ă se va considera entitate separată: adică simbolurile H, V , ∗ de tip caracter, respectiv numerele
k de tip ı̂ntreg, indiferent de numărul de cifre din care sunt formate.
La nivel de caractere ordinea lexicografică este H < V < ∗. Numerele se vor compara ı̂n funct, ie de
valoarea lor, de exemplu 1 < 7 < 12. Vom considera că un caracter este mai mic lexicografic decât un
număr ı̂ntreg.
De exemplu, următoarele două coduri echivalente sunt scrise ı̂n ordine lexicografică:
1. V 7 ∗ V 6 ∗ ∗
2. V 13V 7 ∗ ∗∗
s, i corespund dreptunghiului de mai jos:
Cerint, ă
Se dă un cod de segmentare s, i numerotare s, i se cere să se afle:
1. numărul de subdiviziuni pe care acesta le generează;
2. dimensiunile unui dreptunghi de arie minimă pentru care acest cod este valid;
3. numărul de codificări distincte modulo 1 000 000 007, echivalente cu codul citit (ı̂n acest număr
va fi inclus s, i codul init, ial);
4. primul cod ı̂n ordine lexicografică echivalent cu cel dat.
Date de intrare
De la intrarea standard se vor citi:
• de pe prima linie valoarea lui P ;
• de pe linia următoare un s, ir de caractere reprezentând codul de segmentare s, i numerotare C.
2
Olimpiada Societăt, ii pentru Excelent, ă s, i Performant, ă ı̂n Informatică
Etapa Judet, eană, 14 martie 2021
Clasele XI-XII
Restrict, ii s, i precizări
• 0 < lungimea codului C (număr de caractere) < 350
• Pentru teste ı̂n valoare de 14 puncte avem P = 1.
• Pentru teste ı̂n valoare de 21 de puncte avem P = 2.
• Pentru teste ı̂n valoare de 29 de puncte avem P = 3.
• Pentru teste ı̂n valoare de 36 de puncte avem P = 4.
Exemplu 1
stdin stdout
1 7
H3V2**H2V3**V2*V3**
Exemplu 2
stdin stdout
2 6 6
H3V2**H2V3**V2*V3**
Explicat, ie: Cel mai mic dreptunghi pentru care codul este valid are 6 linii s, i 6 coloane.
Exemplu 3
stdin stdout
3 4
H3V2**H2V3**V2*V3**
Explicat, ie: Numărul codurilor echivalente cu cel citit este 4 (vezi exemplul din enunt, ).
Exemplu 4
stdin stdout
4 H3V2**H2V3**V2*V3**
H3V2**H2V3**V2*V3**
Explicat, ie: Primul cod ı̂n ordine lexicografică echivalent cu cel citit este H3V 2 ∗ ∗H2V 3 ∗ ∗V 2 ∗ V 3 ∗ ∗.