Lista de probleme 281

Filtrare

#1390 cartele

În sediul unei firme se intră doar cu ajutorul cartelelor magnetice. De câte ori se schimbă codurile de acces, cartelele trebuie formatate. Formatarea presupune imprimarea unui model prin magnetizare. Dispozitivul în care se introduc cartelele, numit cititor de cartele, verifică acest model. Toate cartelele au aceleaşi dimensiuni, suprafaţa pătrată şi grosimea neglijabilă. Cele două feţe plane ale unei cartele se împart fiecare în NxN celule pătrate, identice ca dimensiuni. Prin formatare unele celule, marcate cu negru în exemplu, se magnetizează permiţând radiaţiei infraroşii să treacă dintr-o parte în cealaltă a cartelei. În interiorul cititorului de cartele se iluminează uniform una dintre feţele cartelei. De cealaltă parte fasciculele de lumină care străbat cartela sunt analizate electronic. Pentru a permite accesul în clădire modelul imprimat pe cartelă trebuie să coincidă exact cu modelul şablonului care memorează codul de intrare. Prin fanta dispozitivului nu se pot introduce mai multe cartele deodată. Cartela se poate introduce prin fantă cu oricare dintre muchii spre deschizătura fantei şi cu oricare dintre cele două feţe orientate către şablon. După introducere cartela se dispune în plan paralel cu şablonul, lipit de acesta, astfel încât cele patru colţuri ale cartelei se suprapun exact cu colţurile şablonului. Modelele imprimate pe cele două feţe ale unei cartele sunt identice. Unei celule magnetizate îi corespunde pe faţa opusă tot o celulă magnetizată, iar unei celule nemagnetizate îi corespunde una nemagnetizată. O celulă magnetizată este transparentă pentru radiaţia infraroşie indiferent de faţa care se iluminează.

Un angajat al firmei are mai multe cartele. Pe unele dintre acestea a fost imprimat noul cod de intrare, iar pe altele sunt coduri mai vechi. Pentru a afla care sunt cartelele care-i permit accesul în sediul firmei angajatul este nevoit să le verifice pe toate, introducându-le pe rând, în toate modurile pe care le consideră necesare, în fanta cititorului de cartele.

#2172 piata

Ionuţ pleacă la sfârşit de săptămână să se relaxeze într-un parc de distracţii. La intrarea în parc se află o piaţă mare, pavată cu plăci de marmură de aceeaşi dimensiune. Fiecare placă are scris pe ea un singur număr dintre f(1), f(2), f(3), …, f(n), unde f(k) este suma cifrelor lui k, pentru k din mulţimea {1, 2, . . ., n}. Piaţa are forma unui tablou bidimensional cu n linii şi n coloane. Plăcile care alcătuiesc piaţa sunt aşezate astfel:

  • pe prima linie sunt plăci cu numerele f(1), f(2), …, f(n-2), f(n-1), f(n) (în această ordine de la stânga la dreapta);
  • pe linia a doua sunt plăci cu numerele f(n), f(1), f(2), f(3), …, f(n-1), (în această ordine de la stânga la dreapta);
  • pe linia a treia sunt plăci cu numerele f(n-1), f(n), f(1), f(2), f(3), …, f(n-2) (în această ordine de la stânga la dreapta);

  • pe ultima linie sunt plăci cu numerele f(2), …, f(n-2), f(n-1), f(n), f(1) (în această ordine de la stânga la dreapta).

Părinţii lui Ionuţ vor ca şi în această zi, fiul lor să rezolve măcar o problemă cu sume. Astfel aceştia îi propun lui Ionuţ să determine suma numerelor aflate pe porţiunea dreptunghiulară din piaţă având colţurile în poziţiile în care se găsesc aşezaţi ei. Tatăl se află pe linia iT şi coloana jT (colţul stânga-sus), iar mama pe linia iM şi coloana jM (colţul dreapta-jos). Porţiunea din piaţă pentru care se doreşte suma este în formă dreptunghiulară, cu laturile paralele cu marginile pieţei (vezi zona plină din exemplu). Dacă Ionuţ va calcula suma cerută, atunci el va fi recompensat în parcul de distracţii, de către părinţii lui.

Determinaţi suma cerută de părinţii lui Ionuţ.

#1097 Placare

O suprafaţă dreptunghiulară de înălţime N şi lăţime M unităţi trebuie acoperită perfect (placată) prin utilizarea unor plăci de formă dreptunghiulară de dimensiune 1 x P sau P x 1, unde P este un număr natural nenul. Suprafaţa dată poate fi privită ca un caroiaj cu NxM pătrăţele egale cu unitatea.

O placare corectă a suprafeţei iniţiale se memorează într-un fişier text folosind următoarele convenţii de codificare:

  • pe prima linie se precizează dimensiunile N şi M ale suprafeţei;
  • o placă dreptunghiulară de laţime P este codificată prin numărul natural P, iar o placă de înalţime P se codifică prin numărul întreg –P;
  • convenim ca placa având ambele dimensiuni egale cu unitatea să se codifice cu valoarea 1;
  • pe fiecare din cele N linii ale codificării se află câte un şir de valori întregi reprezentând, în ordine de la stânga la dreapta, codurile plăcilor care se găsesc amplasate începând de la respectiva linie;
  • codul P strict mai mare ca 1 al unei placi orizontale apare o singură dată pe linia corespunzătoare pe care se află placa, iar codul –P al unei placi verticale va apare o singură dată şi anume pe prima linie de la care placa respectivă este amplasată în jos pe o anumita coloană a suprafeţei;
  • dacă pe o anumită linie a suprafeţei nu există astfel de coduri de plăci, atunci pe respectiva linie din fişier este o singură valoare de 0.

Folosind codificarea unei placări a suprafeţei iniţiale, se poate determina imaginea acestei placări sub forma unui tablou bidimensional A, cu N linii şi M coloane, unde Aij = valoarea absolută a codului plăcii care se suprapune peste pătrăţelul de pe linia i şi coloana j.

Cunoscând codificarea unei placări corecte a suprafeţei date să se obţină imaginea acestei placări (matricea de valori corespunzătoare codificării suprafeţei).

#1076 Grupe

Se consideră un tablou bidimensional cu m linii, n coloane şi elemente numere naturale. Pentru fiecare element se determină numărul de divizori pozitivi. Se formează apoi grupe cu elementele tabloului care au acelaşi număr de divizori, grupe notate G1, G2, …, Gk. Se ordonează descrescător grupele după numărul de elemente ce le conţin. Se ştie că o grupă G1 se află în faţa unei alte grupe G2 dacă G1 are mai multe elemente decât G2 sau, în cazul în care cele două grupe conţin acelaşi număr de elemente, numărul de divizori ai elementelor din grupa G1 este mai mare decât numărul de divizori ai elementelor din grupa G2. După ordonarea descrescătoare a grupelor, notăm prima grupă cu A şi a doua grupă cu B. În cazul în care toate elementele vor avea acelaşi număr de divizori, va exista o singură grupă, grupa A.

Scrieţi un program care citeşte m, n, elementele tabloului şi afişează:
a) numărul de divizori pozitivi pentru grupa A, numărul de elemente din grupă şi cea mai mare valoare din grupă;
b) numărul de divizori pozitivi pentru grupa B, numărul de elemente din grupă şi cea mai mare valoare din grupă; în cazul în care nu există grupa a doua, se va afişa de trei ori valoarea 0.

#1064 Cri

Furnicuţa şi-a construit un depozit pentru grăunţe pe o suprafaţă de teren dreptunghiulară şi l-a compartimentat în N*M camere identice, de formă pătratică, dispuse câte M pe direcţia Ox şi câte N pe direcţia Oy. Din fiecare cameră se poate intra în orice cameră învecinată cu ea (cameră care are un perete comun cu aceasta).

În fiecare cameră, identificată prin coordonatele sale, ca în desenul alăturat în care N=5 şi M=4, furnica a depozitat o cantitate de grăunţe. De exemplu, în camera de coordonate (I,J) este depozitată cantitatea CIJ de grăunţe.

Atât intrarea cât şi ieşirea din depozit se poate face doar prin cele patru camere din colţurile depozitului, adică cele de coordonate (1,1), (1,M), (N,1) şi (N,M) care comunică cu exteriorul.

Pentru a asigura circulaţia aerului în depozit, furnica a montat un sistem de ventilaţie în camera de coordonate (X,Y).

Văzând ce multe grăunţe are furnica pentru iarnă, vecinul ei, leneşul greieraş Cri, s-a hotărât să fure din ele.

Cri s-a gândit să intre în depozit prin sistemul de ventilaţie din camera de coordonate (X,Y) şi să iasă prin una din cele 4 camere din colţurile depozitului care comunică cu exteriorul.

A studiat planul depozitului şi a împărţit camerele în patru zone:

  • prima zonă, numerotată cu 1, conţine toate camerele de coordonate (I,J) cu 1 ≤ I ≤ X şi 1 ≤ J ≤ Y, cu ieşirea prin camera de coordonate (1,1)
  • a doua zonă, numerotată cu 2, conţine toate camerele de coordonate (I,J) cu 1 ≤ I ≤ X şi Y ≤ J ≤ M, cu ieşirea prin camera de coordonate (1,M)
  • a treia zonă, numerotată cu 3, conţine toate camerele de coordonate (I,J) cu X ≤ I ≤ N şi 1 ≤ J ≤ Y, cu ieşirea prin camera de coordonate (N,1)
  • a patra zonă, numerotată cu 4, conţine toate camerele de coordonate (I,J) cu X ≤ I ≤ N şi Y ≤ J ≤ M, cu ieşirea prin camera de coordonate (N,M)

Cri va intra doar într-una din cele patru zone şi va fura grăunţele doar din camerele conţinute de zona aleasă. Pentru a nu declanşa alarma furnicuţei, el va trebui să treacă cel mult o dată prin fiecare cameră din zonă, să fure întreaga cantitate de grăunţe din aceasta şi să iasă din depozit prin camera ce comunică cu exteriorul, corespunzătoare zonei alese.

Cri va trebui să aleagă zona în care va intra astfel încât cantitatea totală T de grăunţe furate să fie maximă, iar numărul K de camere prin care va trece să fie minim.

Scrieţi un program care să determine numerele naturale Z, T şi K, unde Z reprezintă numărul zonei pe care va trebui s-o aleagă Cri astfel încât cantitatea totală T de grăunţe furate să fie maximă, iar numărul K de camere prin va trece să fie minim.

Se consideră un triunghi alcătuit din numere naturale scrise pe n linii ca în figura alăturată. Liniile triunghiului sunt numerotate de la 1 la n, începând cu linia de la baza triunghiului (linia de jos), iar poziţiile pe linie sunt numerotate începând cu 1 de la stânga la dreapta.
Fiecare număr din triunghi, exceptând pe cele de pe linia 1, este egal cu suma numerelor aflate imediat sub el, în stânga şi respectiv în dreapta lui.

Cunoscând câte un număr de pe fiecare linie a triunghiului, determinaţi toate numerele de pe linia 1.

#1033 Elicop

Un teren de fotbal este folosit pentru aterizarea elicopterelor. Gazonul de pe stadion este parcelat în pătrăţele de aceeaşi dimensiune, cu laturile paralele cu marginile terenului. Liniile cu pătrăţele de gazon sunt numerotate de sus în jos cu numerele 1, 2, …, m, iar coloanele cu pătrăţele de gazon sunt numerotate de la stânga la dreapta cu numerele 1, 2, …, n. Din cauza tipului diferit de iarbă se ştie care dintre pătrăţele de gazon sunt afectate sau nu de umbră. Acest lucru este precizat printr-un tablou bidimensional a cu m linii şi n coloane, cu elemente 0 şi 1 (aij = 0 înseamnă că pătrăţelul aflat pe linia i şi coloana j este afectat de umbră, iar aij = 1 înseamnă că pătrăţelul aflat pe linia i şi coloana j nu este afectat de umbră). Fiecare elicopter are 3 roţi pe care se sprijină. Roţile fiecărui elicopter determină un triunghi dreptunghic isoscel. Elicopterele aterizează, astfel încât triunghiurile formate să fie cu catetele paralele cu marginile terenului. În exemplul următor avem patru elicoptere.

Pentru a preciza poziţia unui elicopter pe teren este suficient să cunoaştem linia şi coloana vărfurilor ipotenuzei şi poziţia vârfului deasupra (codificată prin 1) sau dedesubtul ipotenuzei (codificată prin -1). Pentru exemplu, elicopterul din stânga sus este dat prin (1,1), (3,3) şi -1, cel din dreapta sus prin (1,9), (5,5) şi 1, cel din stânga jos prin (5,1), (6,2) şi 1, iar cel din dreapta jos prin (5,9), (6,8) şi 1.

Un elicopter se consideră că a aterizat greşit, dacă triunghiul format sub el (definit mai sus) are mai mult de jumătate din pătrăţele afectate de umbră.

Administratorul terenului de fotbal doreşte să determine numărul N1 de elicoptere, care nu afectează nici un pătrăţel din teren şi numerele de ordine al elicopterelor, care au aterizat greşit în ordine crescătoare: e1, e2, …, eN2, ştiind că există k elicoptere codificate prin numerele 1, 2, …, k.

Scrieţi un program care să determine, pentru fişierul cu datele din enunţ: numărul de elicoptere N1, care nu afectează nici un pătrăţel din teren şi numerele de ordine al elicopterelor, care au aterizat greşit în ordine crescătoare, precedate de numărul lor N2.

#1039 Betasah

Jocul betaşah se joacă folosindu-se doar piese asemănătoare damelor clasicului şah, numite tot dame. Suprafaţa de joc are o formă triunghiulară şi este formată din N*(N+1)/2 pătrate identice dispuse pe N rânduri şi N coloane. Rândurile se numerotează de sus în jos, de la 1 la N. Coloanele se numerotează de la stânga la dreapta, de la 1 la N. Primul rând conţine un singur pătrat, al doilea rând conţine două pătrate alăturate,…, al N-lea rând conţine N pătrate alăturate, ca în suprafeţele de joc cu N=6 din figurile de mai jos. Din cele N*(N+1)/2 pătrate, K sunt gri, iar restul sunt albe. Poziţia fiecărui pătrat de pe suprafaţa de joc este dată de rândul şi coloana în care acesta este situat.

Pe suprafaţa de joc sunt aşezate D dame în D pătrate albe distincte, ocupându-le. Într-un pătrat alb poate fi aşezată o singură damă, iar într-un pătrat gri nu poate fi aşezată nicio damă. Poziţia unei dame pe suprafaţa de joc este dată de poziţia pătratului alb în care este aşezată dama.

Damele pot accesa orice pătrat alb neocupat situat pe direcţiile: verticală, orizontală sau diagonală, numerotate de la 1 la 8 în figura b). Accesul pe o direcţie se face trecând din pătrat alb în pătrat alb (doar pătrate albe neocupate) până la întâlnirea unui pătrat gri sau a unui pătrat alb ocupat de o altă damă sau până la terminarea suprafeţei de joc.

Numim pătrat accesibil orice pătrat alb neocupat (de pe suprafaţa de joc) care ar putea fi accesat de cel puţin una din cele D dame.

De exemplu, pentru suprafaţa de joc din figura c) numărul de pătrate accesibile (marcate cu X) de pe suprafaţă este 11; pentru suprafaţa de joc cu N=6, D=3 şi K=4 din figura d) numărul de pătrate accesibile de pe suprafaţă este 13. În figura e) sunt marcate cu X pătratele accesibile fiecărei dame de pe suprafaţa de joc din figura d).

Pătratele accesibile damei din rândul 3 şi coloana 2 Pătratele accesibile damei din rândul 5 şi coloana 2 Pătratele accesibile damei din rândul 5 şi coloana 4 Pătratele accesibile de pe suprafaţa de joc
Figura e)

Scrieţi un program care să citească numerele naturale N, D, K, poziţiile damelor şi ale pătratelor gri pe suprafaţa de joc şi care să determine:
a) numărul maxim M de pătrate albe conţinute de un rând al suprafeţei de joc;
b) numărul P de pătrate accesibile de pe suprafaţa de joc.

Suprafața plană a unei mese de pseudo-biliard este formată din n x n celule pătratice cu lungimea laturii egală cu 1 (o unitate), lipite, dispuse pe n linii numerotate de la 1 la n și n coloane, numerotate de la 1 la n. Pe masă se așează K bile, fiecare bilă găsindu-se în centrul unei anumite celule a mesei. Un jucător dorește să plaseze pe suprafața mesei un cadru pătratic având lungimea diagonalei egală cu D unități.

El trebuie să răspundă la m întrebări de forma: x y. Fiecare întrebare are semnificația: câte bile se găsesc în interiorul sau pe laturile cadrului ?

Cadrul se plasează astfel încât fiecare colț să fie poziționat în centrul unei celule, colțurile opuse să se găsească pe aceeași coloană, respectiv pe aceeași linie, iar colțul “de sus” să fie plasat în centrul celulei aflată pe linia x și coloana y.

Cunoscând lungimea n a laturilor mesei, numărul m de întrebări, numărul K de bile așezate pe masă, pozițiile lor și lungimea D a diagonalei cadrului pătratic, se cere:
1. Numărul de celule care se vor găsi în întregime în interiorul cadrului, dacă acesta se așează pe suprafața mesei, conform descrierii de mai sus.
2. Câte un răspuns pentru fiecare dintre cele m întrebări.

#1047 Patrat2

Cel mai mare observator astronomic din România și din Europa de Est, aflat la Galați, a captat o imagine a boltei cerești, ce surprinde toate stelele vizibile în acel moment. Imaginea este în format digital, codificată sub forma unui tablou bidimensional, cu N linii și M coloane. Fiecare element al tabloului conține un număr natural care reprezintă intensitatea luminoasă a unei stele.

Numim stea strălucitoare o stea care are intensitatea luminoasă mai mare decât a tuturor stelelor învecinate direct cu ea, pe orizontală, verticală sau diagonală. Numim constelație pătrată patru stele strălucitoare care se află plasate în colțurile unui pătrat cu laturile paralele cu marginile tabloului. Lungimea laturii unei constelații pătrate este egală cu numărul de stele din care este formată latura. O stea strălucitoare poate face parte din mai multe constelații pătrate.

Scrieți un program care să determine:

a) Numărul stelelor strălucitoare;
b) Numărul constelațiilor pătrate;
c) Lungimea laturii pătratului care reprezintă cea mai mare constelație pătrată.