Lista de probleme 545

Filtrare

Dificultate

Operații intrare/ieșire

#2527 hanoi

Turnurile din Hanoi este un joc matematic sau, dacă vreți, un puzzle. Este format din trei tije A, B și C și un număr variabil de discuri, de diferite diametre. Inițial discurile sunt așezate în ordine descrescătoare a diametrelor pe tija A, de la vârf către bază, astfel încât să formeze un turn.
Scopul jocului este acela de a muta toate discurile de pe tija A pe tija C folosind ca tijă intermediară tija B, respectând următoarele reguli:

  • doar un singur disc poate fi mutat, la un moment dat
  • fiecare mutare constă în luarea celui mai de sus disc de pe o tija și mutarea acestuia pe o altă tijă
  • un disc cu diametrul mai mare nu poate fi poziționat deasupra unui disc cu diametrul mai mic.

Cerința

Dacă se cunoaște numărul n de discuri aflate pe tija A, să se determine șirul mutărilor necesare pentru ca toate discurile să fie mutate pe tija C.

#2144 diofantic C++

Se dau numerele naturale nenule a, b, c, n, urmate de o secvența de n numere naturale distincte ordonate crescător, notată cu s. Scrieți în limbajul C++ definiția completă a subprogramului diofantic care returnează numărul de perechi (x,y) care verifică ecuația: a•x2 + b•y2 = c , unde x și y aparțin secvenței s.

Admitere FMI Bucuresti - 2015

#2512 xnk

Se consideră numerele naturale nenule X, N, K, unde N este o putere a lui 2. Pentru o permutare p = (p1,p2,…,pN) a mulțimii {1,2,...,N} se determină maximul după modelul din exemplu. Să se determine numărul permutărilor mulțimii {1,2,...,N} în care valoarea X va fi prezentă pe nivelul K, nu și pe nivelul K-1. Pentru că acest număr poate fi foarte mare, se va determina modulo 1234577.

Lot juniori Câmpulung Muscel, 2018

Pescar împătimit pe râul Olt și pe bălțile din lunca Dunării, Eric a ajuns în Deltă și acum și-a propus să pescuiască pe canalele de aici. Sejurul lui Eric în Deltă începe în ziua 0, atunci când el ajunge la cherhanaua din Tulcea. În fiecare din următoarele n zile pornește din cherhanaua în care se află, merge să pescuiască pe un canal și apoi depozitează peștele prins în altă cherhana (de unde va porni în ziua următoare). El și-a făcut de la început planul stabilind exact la care canal pescuiește în fiecare zi și la care cherhana depozitează peștele prins la finalul zilei respective. Dorește însă să meargă o distanță cât mai mică.
Canalele sunt reprezentate prin drepte în plan iar cherhanalele prin puncte. În prima zi de pescuit, el pleacă de la cherhanaua din Tulcea (să o notăm cherhanaua 0), merge să pescuiască într-un loc din canalul 1, apoi depozitează peștele în cherhanaua 1. Rămâne aici peste noapte, apoi, în ziua 2, pornește din cherhanaua 1, pescuiește într-un loc (punct) de pe canalul 2 și depozitează peștele în cherhanaua 2 etc.
Considerând că pescarul Eric se poate deplasa oricum dorește, determinați distanța minimă pe care o parcurge (suma lungimilor tuturor segmentelor pe care el le parcurge).

Lot juniori Câmpulung Muscel, 2018

#1351 nano

În lumea lui Nano totul se construiește la nivel atomic. Știința a ajuns așa departe încât poate construi ”plăci” dreptunghiulare de atomi în care aceștia sunt aliniați perfect, pe un singur strat, formând un rastru. Nano dorește să comande la o firmă plăci pătrate de dimensiuni mari. Dimensiunile sunt atât de mari încât numărul de atomi dintr-o placă poate să fie scris cu până la 500 cifre. Firma i-a dat o listă cu bucățile de material de care dispune, pentru fiecare bucată fiind cunoscut numărul de atomi componenți, urmând ca Nano să aleagă doar acele bucăți din care se pot construi plăci pătrate.
Scrieți un program care citind numărul de atomi ai fiecărei bucăți de material din fișierul nano.in scrie în fișierul nano.out doar bucățile de material din care se pot face plăcile dorite de Nano.

#2484 key

Cristi are în sertar n chei vechi; fiecare a costat o anumită sumă exprimată în lei și fiecare a fost făcută pentru a deschide aceeași ușă. Atât cheile cât și ușa au un cod format din 3 litere. Din păcate, unele chei s-au deteriorat și Cristi le-a împărțit în 4 categorii:

  1. stricate – nicio o literă din codul cheii nu coincide cu litera de pe aceeași poziție din codul ușii, iar pentru a o repara trebuie sa plătească prețul integral al cheii;
  2. deteriorate – exact o litera din codul cheii coincide cu litera de pe aceeași poziție din codul ușii, iar pentru a o repara trebuie sa plătească două treimi din prețul cheii;
  3. slab deteriorate – exact două litere din codul cheii coincid cu literele de pe aceleași poziții din codul ușii, iar
    pentru a o repara trebuie sa platească o treime din prețul cheii;
  4. bune – codul cheii e identic cu codul ușii, iar cheia nu trebuie reparată;

Cerințe:

1) Să se afle câte chei din fiecare categorie are Cristi.
2) Sa se afle cât a plătit Cristi pentru a repara toate cheile.

#2496 road

Se consideră o matrice cu N linii și N coloane care memorează doar cifre. Liniile și coloanele sunt numerotate de la 1 la N. Se consideră de asemenea un vector v de lungime 10, în care v[i] = costul cifrei i (i = 0..9). Trebuie să determinăm un drum de la coloana 1 la coloana N, deci care pornește de la o componentă aflată pe coloana 1 la o componentă de pe coloana N și fiecare pas se face dintr-o poziție (i,j) într-una din pozițiile învecinate pe linie sau coloană, adică (i+1,j), (i-1,j), (i,j+1), (i,j-1), cu condiția să nu iasă din matrice. Costul unui astfel de drum este suma costurilor asociate componentelor prin care trece drumul.
Să se determine numărul minim de cifre distincte prin care trece un drum de la coloana 1 la coloana N. Dacă există mai multe astfel de drumuri, atunci se va determina costul minim al unui astfel de drum.

Lot juniori Tulcea, 2018

#2471 gcl

Gigel a inventat un nou limbaj de programare pe care l-a numit GCL (Gigel Campion Language). În GCL pot fi utilizate maxim 26 variabile notate cu litere mici ale alfabetului englez. Valoarea inițială fiecărei variabile (la începutul execuției programului) este 0.

Un program în limbajul GCL este format dintr-o succesiune de comenzi, câte o comandă pe o linie. Scrieți un program care citește un program scris limbajul GCL și rezolvă următoarele două cerințe:

1. determină numărul de comenzi SCRIE care se execută;
2. determină rezultatele afișate de comenzile SCRIE din programul scris în limbajul GCL.

#2478 laser

Determinaţi costul total minim al segmentelor care pot fi alese pentru a obtura orice fascicul de lumină care
ar pleca din origine către un punct cu ordonata pozitivă.

#2430 zebra

Să se determine o partiționare a unui șir în subșiruri zebră.