Lista de probleme 9

De când a început serviciul militar, Mihai nu și-a găsit vocația și a decis să-și încerce norocul încă o dată, mergând la superiorul său, Căpitanul Dan. De data aceasta, Dan a fost mai amabil, dar i-a cerut lui Mihai să demonstreze talentul său de trăgător.
Vom considera țintele din zona de tragere ca fiind dreptunghiuri în plan. Căpitanul îi indică lui Mihai câteva puncta pe axa OX și direcțiile de tragere. Fiecare tragere este o semidreaptă care poate fi orientată fie diagonal spre stânga la 45o, fie diagonal spre dreapta la 45o, fie pe verticală în sus. Definim costul atingerii unei ținte ca fiind lungimea intersecției semidreptei de tragere cu dreptunghiul care reprezintă ținta. Dacă intersecția este vidă, sau constă dintr-un singur punct, atunci costul este 0. Definim costul unei trageri ca suma costurilor atingerilor tuturor țintelor. Determinați costul fiecărei trageri.

Balcaniada de Informatică 2018, ziua 1

#2560 bits

Se dă un număr natural N. Determinați valoarea unor anumiți biți din reprezentarea sa internă.

Balcaniada de Informatică 2018, ziua de antrenament

#2554 or

Se consideră numerele naturale X, N și o matrice pătratică A cu N x N elemente numere naturale. Determinați aria minimă a unei submatrice cu proprietatea că efectuând operația or pe biți or între toate elementele submatricei se obține valoarea X.

Balcaniada de Informatică 2018, ziua 2

#2556 hn

Fie N un număr natural și expresia

Determinați numerele naturale P și Q ce reprezintă numărătorul respectiv numitorul fracției ireductibile P / Q.

Balcaniada de Informatică 2018, ziua 1

#2557 kbin

Numim număr k-binar un număr natural care în scrierea sa în baza 2 are exact k cifre de 1. De exemplu numărul 23 este 4-binar pentru că el se scrie în baza 2 sub forma 10111 și conține exact patru biți de 1. Pentru valorile date ale lui N și k, să se calculeze suma tuturor numerelor k-binare strict mai mici decât N. Deoarece sumele sunt foarte mari, acestea vor fi calculate modulo 1234567.

Balcaniada de Informatică 2018, ziua 1

Toată lumea cunoaște modelul de deblocare a telefoanelor sub formă de o matrice cu 3 linii și 3 coloane. Se pot trasa diferite modele de deblocare având un număr N de puncte prin care trecem, din fiecare punct putând merge la oricare vecin al lui. (Sunt maximum 8 vecini de exemplu pentru punctul din mijloc și 3 vecini pentru un punct din colț).

Determinați câte variante de modele sunt posibile trecând prin N puncte. Deoarece numărul poate fi foarte mare, se va afișa numărul de variante modulo 1000003.

Balcaniada de Informatică 2018, ziua de antrenament

Legendarul vrăjitor Merlin se distrează în laboratorul său. El are N poțiuni magice (etichetate cu 1, 2, …, N) aranjate pe o singură linie într-o ordine dată. El dorește să le aranjeze în ordine crescătoare. Se va muta o singură poțiune la un moment dat. Prima poțiune mutată va fi cea etichetată cu 1, apoi cea etichetată cu 2 și așa mai departe. Bineînțeles, pentru a rezolva problema, Merlin va apela la magie. Fiecare poțiune poate fi mutată folosind una sau mai multe vrăji, trecând prin una sau mai multe poziții intermediare. Mutând o poțiune de la poziția I în poziția J, vraja va consuma (I-J)2 unități de energie. De exemplu, dacă există șapte poțiuni aranjate astfel 1, 7, 3, 4, 5, 2, 6 și Merlin mută poțiunea (etichetată cu 2) de la cea de-a șasea poziție la a doua poziție atunci noua aranjare va fi 1, 2, 7, 3, 4, 5, 6 cu (6-2)2 unități de energie consumate. Înainte de a începe distracția, Merlin a stabilit două criterii:
1. El nu dorește să fie prea obosit la sfârșitul zilei, de aceea nu dorește să consume mai mult de E unități de energie.
2. De asemenea el se plictisește repede, de aceea el dorește să rezolve problema cu un număr minim de vrăji. Calculați numărul minim de vrăji pe care le poate folosi Merlin pentru a rezolva problema.

Balcaniada de Informatică 2018, ziua 2

#2561 addchar

Se consideră un set de două șiruri de caractere X și Y. Șirul X este format din caractere din mulțimea {'A'..'Z', 'a' ..'z', '*'}, iar șirul Y este format din caractere din mulțimea {'A'..'Z', 'a'..'z'}. Lungimea șirului Y este mai mare sau egală cu numărul de caractere * din X. Caracterele * din șirul X vor fi înlocuite cu caractere din Y, evident fără a depăși numărul de apariții ale acestora. Fiind date N seturi de câte două șiruri fiecare, (X1, Y1), (X2, Y2), …, (XN, YN), să se determine lungimea celui mai lung subșir strict crescător ce se poate forma în Xi prin înlocuirea caracterelor * cu caractere din Yi, 1 ≤ i ≤ N.

Balcaniada de Informatică 2018, ziua de antrenament

#2559 train

O companie feroviară a lansat recent un nou prototip de tren, format dintr-un singur vagon cu N scaune. Scaunele sunt numerotate la 1 la N (numerotarea începe de la partea din față a trenului) și sunt aranjate într-o linie, unul în spatele altuia. Următoarele reguli urmează să fie respectate de fiecare pasager:

1. Pasagerii vor urca în tren doar pe ușa din spate, care este situată după toate scaunele. Odată urcați, pasagerii au dreptul să se deplaseze doar spre partea din față și pot părăsi trenul doar prin ușa din față (care este situată în fața tuturor scaunelor).
2. Fiecare pasager va ocupa locul situat imediat după ultimul scaun ocupat. Dacă trenul este absolut liber, pasagerul va ocupa scaunul din față (marcat ca locul 1).
3. Nici un pasager nu are dreptul să-și părăsească locul până la debarcare.
4. La fiecare stație, pasagerii care au ajuns la destinație părăsesc trenul. Dacă există pasageri pe scaune în fața celui care a ajuns la destinație, ei de asemenea vor părăsi trenul, chiar dacă încă nu au ajuns la destinația lor.
5. Odată ce a ieșit din tren, pasagerul nu mai are dreptul să urce înapoi.

Ruta trenului are M stații, numerotate de la 1 la M. Trenul se oprește în fiecare stație, începând cu stația 1 și terminând cu stația M. La toate cele M stații de tren se află în total N pasageri, numerotați de la 1 la N. Pentru fiecare pasager se cunoaște din timp prețul tichetului, stația de îmbarcare și stația de debarcare. Compania feroviară dorește să aibă doar clienți fericiți, care ajung la destinația lor. Pentru a avea doar clienți fericiți, compania a permis conductorului să selecteze pasagerii care se pot îmbarca, precum și ordinea în care li se permite îmbarcarea. Astfel, conductorul poate să decidă să nu permită unor pasageri să urce în tren. Determinați profitul maximal care poate fi obținut de companie având doar clienți fericiți, precum și o ordine de îmbarcare validă, care permite obținerea acestui profit.