Lista de probleme 42

Filtrare

Dificultate

Operații intrare/ieșire


Etichete

#1223 Magic1

Pentru obținerea Pietrei Filosofale, un alchimist a preparat un elixir folosind un creuzet de capacitate C, în care a turnat picături de metal topit, într-o ordine bine stabilită, în N etape. Numărul de picături turnate într-o etapă este cuprins între 0 și C-1, iar procesul începe când în creuzet s-a turnat prima picătură (în prima etapă numărul de picături turnate este nenul). Picăturile se adună în creuzet una câte una şi, de fiecare dată când acesta se umple complet, alchimistul rosteşte o formulă magică, provocând transformarea întregului conţinut într-o singură picătură, apoi continuă procesul. O rețetă de obținere a elixirului se exprimă printr-un șir de N numere, reprezentând numărul de picături turnate în cele N etape.

De exemplu, aplicând rețeta 5 6 1 0, cu un creuzet de capacitate C=7, în cele N=4 etape procesul este:

  • etapa 1: se toarnă 5 picături;
  • etapa a 2-a: se toarnă 6 picături, astfel: după primele 2 picături se umple creuzetul (5+2=7) și deci se rosteşte formula magică, în creuzet rămânând o picătură; se continuă cu celelalte 4 picături; la finalul etapei în creuzet sunt 5 picături (1+4=5);
  • etapa a 3-a: se toarnă o picătură; la finalul etapei în creuzet sunt 6 picături (5+1=6);
  • etapa a 4-a: se toarnă 0 picături; după ultima etapă creuzetul conține 6 picături (6+0=6).

O rețetă care corespunde Pietrei Filosofale trebuie să conducă, la finalul aplicării ei, la obținerea unei singure picături, chintesența metalelor amestecate. Bineînțeles, sunt mai multe astfel de rețete.

Fiind un tip responsabil, alchimistul a lăsat posterității un set de tratate, care cuprind toate aceste rețete. El a scris pe fiecare pagină câte o rețetă, astfel încât niciuna să nu se repete în cadrul întregii lucrări. Pe vremea aceea erau meșteri pricepuți, care fabricau tratate de dimensiuni corespunzătoare, încât fiecare pagină să poată cuprinde o rețetă ca a noastră, oricât de lungă ar fi ea. Fiecare tratat are P pagini și doar după ce completează toate cele P pagini ale unui tratat, alchimistul începe un nou tratat.

Se cere numărul de rețete publicate în ultimul tratat.

ONI GIM 2015, Clasa a VIII-a

#1227 Spioni

Gigel si Ionel se joacă de-a spionii! De aceea ei imaginează o modalitate de a codifica un mesaj astfel încât nimeni să nu îl poată descifra. Toate mesajele lor au lungimea o putere a lui 2. Ei numerotează literele mesajului începând cu 1. Apoi separă literele în două categorii: cele cu număr de ordine impar în stânga, cele cu număr de ordine par în dreapta, păstrând ordinea lor. Procedeul continuă pentru fiecare grupă nou rezultată începând cu cea din stânga, până când fiecare grupă obţinută conţine un singur caracter. După terminarea operaţiilor alipesc grupele de câte o literă rezultate, începând de la stânga spre dreapta şi obţin mesajul codificat.

De exemplu pentru mesajul MESAJNECODIFICAT procedează astfel:
1. numerotează

MESAJNECODIFICAT
123456789...

2. separă

MSJEOIIA                   EANCDFCT            apoi repetă paşii 1 şi 2 pentru 
12345678                   12345678            fiecare grupă rezultată

MJOI        SEIA           ENDC       ACFT
1234        1234           1234       1234

MO   JI     SI   EA        ED  NC     AF  CT
12   12     12   12        12  12     12  12

M O  J I    S I  E A       E D  N C   A F  C T
1 2  1 2    1 2  1 2       1 2  1 2   1 2  1 2    

până se obţine un singur caracter în fiecare grupă şi alipind literele de la stânga spre dreapta rezultă mesajul codificat: MOJISIEAEDNCAFCT

Scrieţi un program care să rezolve următoarele două cerinţe:

  1. dat fiind un mesaj, să determine codificarea acestuia;
  2. dat fiind un mesaj codificat, să determine decodificarea acestuia.

Se consideră un text memorat într-o matrice M, definită prin coordonatele colţului stânga sus (x1,y1) şi coordonatele colţului dreapta jos (x2,y2).

Prin aplicarea unui algoritm de compresie, matricei M i se asociază un şir de caractere, notat CM. Şirul de caractere CM este construit prin aplicarea următoarelor reguli:

  1. dacă matricea M are o singură linie şi o singură coloană atunci CM conţine numai caracterul memorat în matrice;
  2. dacă toate elementele matricei sunt identice atunci întreaga matrice M se comprimă şi CM este şirul kc, unde k reprezintă numărul de caractere din matrice, iar c caracterul memorat;
  3. dacă matricea este formată din caractere diferite şi are cel puţin două linii şi două coloane atunci:
    • matricea este împărţită în 4 submatrice A, B, C, D după cum este ilustrat în figura alăturată, unde coordonatele colţului stânga sus ale submatricei A sunt (x1,y1), iar coordonatele colţului dreapta jos sunt ((x2+x1)/2,(y2+y1)/2);
    • CM este şirul *CACBCCCD unde CA, CB, CC, CD sunt şirurile de caractere obţinute, în ordine, prin compresia matricelor A, B, C, D utilizând acelaşi algoritm;
  4. dacă matricea este formată din caractere diferite, are o singură linie şi mai multe coloane atunci CM este şirul *CACB unde A, B, CA, CB au semnificaţia descrisă la punctul 3.;
  5. dacă matricea este formată din caractere diferite, are mai multe linii şi o singură coloană atunci CM este şirul *CACC unde A, C, CA, CC au semnificaţia descrisă la punctul 3.;

Dat fiind şirul de caractere CM ce se obţine în urma aplicării algoritmului de compresie asupra unei matrice M de dimensiune NxN să se determine:

  1. numărul de împărţiri care au fost necesare pentru obţinerea textului compresat;
  2. matricea iniţială din care provine textul compresat.

Cătălin este cel mai important general din armata țării sale, care are N membri (soldați și ofițeri), numerotați de la 1 la N (Cătălin are numărul 1). Un ofițer este un soldat care are în subordinea sa alți soldaţi. Conform ierarhiei militare, Cătălin și toți ceilalți ofițeri primesc inițial 3 subalterni (soldații cu numerele 2, 3 şi 4). Fiecare dintre cei trei, primește la rândul lui alți 3 subalterni, după următoarea regulă: ofițerul cu numărul x primește subalternii 3 * x – 1, 3 * x, 3 * x + 1 (dacă aceștia există în armată).

S-a descoperit că în această armată există trădători. Mai exact, toți cei numerotați cu numere prime sunt dovediți trădători, iar Cătălin știe bine asta, asa că ia măsuri radicale: decide să îi elimine pe rând pe toți acești misei, începând chiar cu subalternul său cu numărul 2. Dacă ofițerul cu numărul X este eliminat, toți subalternii săi devin subalternii comandantului său. Eliminându-l pe 2, subalternii acestuia devin subalternii comandantului lui 2, adică ai lui Cătălin. După trista eliminare a lui 2, Cătălin trece mai departe și elimină pe rând pe cei cu numerele 3, 5, 7, 11, 13 … Subalternii lui 3, 5, 7 devin subalternii lui 1, cei ai lui 11 devin ai lui 4 și tot așa.

După măcel, Cătălin trebuie să răspundă la Q întrebări ale împăratului care dorește să afle câți subalterni are un membru x al armatei sale. Dacă x a fost eliminat, Cătălin va transmite pentru acesta răspunsul -1.

#1762 Morum

Cunoscând latura l a covorului, modelul m ales, procentul p din suprafața inițială a covorului care poate fi decupat, determinați gradul de dantelare al covorului (etapa până la care se poate proceda la modelare), precum și lungimea conturului și suprafața covorului după decupare (perimetrul și aria se vor afișa fiecare prin câte o fracție).

Concursul EMPOWERSOFT, 2016

#1428 Sume1

Se dă un număr natural N. Să se calculeze expresia:

\( E = (2^0 +2^1 + 2^2 + 2^3 + … + 2^N ) \% 1 000 000 007 \)

unde x % y reprezintă restul împărţirii lui x la y.

În premieră în acest an, pentru a putea ridica marele trofeu “Urmașul lui Moisil” vor fi necesare o serie de ștampile ce se obțin de la Primărie.

La Primăria din Iași sunt N camere numerotate de la 1 la N. În fiecare cameră există câte o ștampilă pe care apare o literă mică a alfabetului englez a-z. Pot exista camere cu același caracter pe ștampilă.

În instituţie sunt două categorii de camere, în funcţie de modul în care acordă ștampilele:

  • camere simple – se aplică ștampila camerei imediat, fără a fi necesare ştampilele din alte camere.
  • camere complicate – Mecanismul birocratic intră în acţiune! Funcţionarul unei astfel de camere i aplică ştampila pe cerere apoi solicită obţinerea în ordine a ştampilelor camerelor c[i1], c[i2] ... c[iLg], toate aceste camere având numere mai mari strict decât i. După fiecare ștampilă obținută în camerele specificate, aplică și el, încă o dată, ştampila camerei sale. Spunem că această cameră complicată este dependentă de fiecare dintre camerele din lista asociată, care pot fi la rândul lor simple sau complicate.

Pentru ca festivitatea de premiere să nu înceapă prea târziu , câștigătorul trofeului trebuie să raspundă repede la M întrebări de tipul (q,k): care este litera de pe poziția k a șirului de ștampile obținut de la camera q?

Urmasii lui Moisil, 2014, Clasa a X-a

#1496 Harta1

O hartă este codificată printr-o matrice cu N linii și M coloane de elemente numere naturale. Valoarea 0 semnifică o zonă cu apă. Zonele de uscat sunt codificate prin valori între 1 și K. Celulele aparținând unei țări I sunt codificate cu valoarea I. Fiecare țară este împărțită în departamente. Prin definiție, un departament reprezintă o mulțime de celule de aceeași valoare, continuă pe linii și coloane (nu și diagonale).

Fiind dată o hartă codificată ca mai sus. să se determine:

a) Suprafața totală a apei.
b) Lista țărilor cu cele mai multe departamente, ordonată crescător.

Olimpiada locală de Informatică, Prahova, 2016

Fie secvența S(x) care se construiește astfel:

  • S(1) = x
  • S(n + 1) = S(n) XOR [S(n) / 2], unde [x] se definește ca parte întreagă din x, iar XOR este operația clasică „sau exclusiv”.

Dându-se un număr natural k, aflați numărul de numere naturale x pentru care S(k + 1) = S(1) = x este adevărat. Deoarece numărul poate fi foarte mare, afișați rezultatul modulo 1000000007.

Clasele IX-X echipaje, Info Oltenia 2017

Într-un oraş se află o grădină de formă dreptunghiulară, formată din n x m pătrăţele, aranjate sub forma unei matrice cu n linii şi m coloane. Într-un pătrăţel poate fi cultivată o singură plantă, de o anumită specie. Speciile sunt identificate prin numere distincte cuprinse între 1 şi s. Datorită fenomenelor meteorologice, în unele pătrăţele nu mai există flori.

Solul fiecărui pătrăţel are un anumit coeficient de umiditate. Pentru cultivare, fiecare specie de flori are nevoie de o valoare minimă a umidităţii solului. Mai exact, dacă umiditatea solului dintr-un pătrăţel este mai mică decât umiditatea specifică plantei, aceasta nu poate fi cultivată în pătrăţelul respectiv. Proprietarul grădinii doreşte să o reamenajeze, prin păstrarea plantelor deja existente, dar şi prin cultivarea de noi plante în pătrăţelele din care florile au dispărut, astfel încât să se obţină o zonă de arie cât mai mare acoperită cu plante din aceeaşi specie.

Se numeşte zonă un grup de pătrăţele, astfel încât oricare două pătrăţele din zonă fie sunt învecinate (adică au o latură comună), fie se poate ajunge de la unul la celălalt, deplasându-ne numai de la un pătrăţel la unul învecinat cu el. Aria unei zone este egală cu numărul de pătrăţele din care este formată zona.

Determinaţi valoarea ariei pentru zona de arie maximă cultivată cu plante din aceeaşi specie, obţinută în urma reamenajării grădinii.

Olimpiada Municipala de Informatica, Iasi, 2007