Lista de probleme 1991

Filtrare

#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.

#1074 Carte

Rareş a primit în dar o carte în care paginile sunt amestecate. Se hotărăşte totuşi să o citească, răsfoind cartea într-un singur sens, de la prima pagină către ultima, în ordinea aşezării lor în carte, respectând următorul algoritm:

Caută la început pagina numerotată cu x=1.

După ce a citit pagina cu numărul x caută printre paginile următoare acestei pagini, răsfoind cartea, pagina cu numărul x+1, fără a căuta printre paginile aşezate înaintea paginii cu numărul x. Dacă o găseşte atunci va continua lectura în acelaşi mod, iar dacă nu o găseşte atunci va închide cartea şi, în ziua următoare, va relua lectura de la pagina cu numărul x+1, pe care mai întâi o va caută răsfoind cartea de la început.

Rareş va proceda la fel şi în zilele următoare până când va citi întreaga carte.

Scrieţi un program care citeşte un număr natural n, reprezentând numărul paginilor din carte şi n numere naturale distincte x1, x2,…, xn, reprezentând ordinea în care sunt aşezate cele n pagini în carte, şi care determină:
a) numărul zilelor în care Rareş citeşte cartea;
b) prima zi în care Rareş a citit cele mai multe pagini şi numărul paginilor citite în acea zi.

#1072 Magic

Rămaşi singuri în pădure, Hansel şi Grettel, ştiu că singura lor şansă de supravieţuire este să găsească şi să intre în Castelul de Turtă Dulce. Poarta castelului este închisă şi pentru a intra este nevoie de un cuvânt magic şi de un număr fermecat.

Zâna cea Bună îi vede pe copii şi pentru că vrea să–i ajute le spune:
„Mergeţi tot înainte, iar în drumul vostru o să întâlniţi copaci pe a căror trunchiuri sunt scrise caractere reprezentând litere sau cifre. Cuvântul magic este format din toate caracterele literă în ordinea în care apar, dar scrise toate cu majuscule. Numărul fermecat este cel mai mic număr cu cifre distincte care se poate forma din caracterele cifră.”

Pentru a-i ajuta pe Hansel şi Grettel să intre în Castelul de Turtă Dulce, scrieţi un program care citeşte un număr natural n, apoi n caractere şi determină:

a) cuvântul magic;
b) numărul fermecat;

#1075 Grad1

Se consideră un şir x1, x2, …, xn de n numere naturale distincte, două câte două. Pentru o secvenţă de k numere (xp, xp+1, ..., xp+k-1), care începe cu numărul de pe poziţia p din şirul dat, definim gradul său ca fiind numărul de numere din secvenţă, care rămân pe aceleaşi poziţii după ordonarea crescătoare a secvenţei. De exemplu, pentru n=7 şi şirul format din numerele: 1, 5, 7, 4, 6, 2, 9, secvenţa formată din numerele 7, 4, 6, 2 (corespunzătoare lui p=3 şi k=4) are gradul egal cu 2 deoarece, după ordonarea crescătoare a numerelor din secvenţă, aceasta devine 2, 4, 6, 7, numerele 4 şi 6 rămânând pe aceleaşi poziţii.

Scrieţi un program care citeşte numerele n, k, x1, x2, …, xn, cu semnificaţia din enunţ, şi apoi determină:

a) gradul întregului şir de numere;
b) poziţia primului element din prima secvenţă de lungime k ce are gradul maxim, precum şi gradul acestei secvenţe.

#1065 Vase1

Specialiştii chimişti au reuşit crearea în laborator a unei game diversificate de substanţe lichide nemiscibile (care nu se amestecă între ele), de aceeaşi densitate şi de culori diferite.

Acest rezultat a fost utilizat de către specialiştii fizicieni pentru studiul principiului vaselor comunicante. Conform acestui principiu „într-un sistem de vase comunicante nivelul lichidului este acelaşi, indiferent de forma vaselor.“

Experimentele fizicienilor se desfăşoară astfel:

Într-un sistem cu două vase comunicante, gradat identic pe fiecare ramură cu 0, 1, 2, 3,…, fizicienii introduc un număr de n lichide, pe ramura din stânga sau pe ramura din dreapta. Volumele introduse din fiecare lichid, notate cu Vi (1≤i≤n), sunt numere naturale nenule pare astfel încât, la echilibru, orice lichid se va aşeza între două gradaţii de aceeaşi parte a unei ramuri sau pe cele două ramuri ale sistemului de vase comunicante. Lichidele sunt identificate prin intermediul culorii acestora, culori numerotate cu 1, 2, 3, … , n. Introducerea lichidelor în sistemul cu două vase comunicante se face în ordinea crescătoare a numerelor culorilor, începând cu lichidul de culoare 1.

Scopul experimentului este de a determina gradaţia maximă la care se ridică lichidele în sistemul cu două vase comunicante, precum şi între ce gradaţii se găseşte un lichid de culoare x, dintre cele introduse.

De exemplu, dacă în sistemul cu două vase comunicante se introduc n=3 lichide în ordinea: V1=4 lichid de culoare 1 introdus prin ramura din dreapta (operaţie codificată 4 D), V2=4 lichid de culoare 2 introdus prin ramura din stânga (operaţie codificată 4 S) şi V3=2 lichid de culoare 3 introdus prin ramura din stânga (operaţie codificată 2 S) atunci gradaţia maximă la care se ridică nivelul lichidelor în sistemul cu două vase comunicante este 5, iar lichidul de culoare x=2 se găseşte între gradaţiile: 3 pe ramura din stânga (3 S) şi 1 pe ramura din dreapta (1 D), conform figurii alăturate.

Să se scrie un program care cunoscând numărul n de lichide introduse în sistemul cu două vase comunicante, volumul Vi şi ramura prin care se face introducerea lichidului de culoare i (1≤i≤n), precum şi culoarea x, să calculeze gradaţia maximă la care se ridică lichidele în acest sistem la echilibru şi între ce gradaţii se găseşte lichidul de culoare x.

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.

#979 Alice

Într-o zi frumoasă de vară, Alice se juca în parc. Deodată, văzu un iepure cu ceas, numit Iepurele Alb, sărind grăbit în scorbura unui copac. Curioasă, Alice îl urmări şi sări şi ea în scorbură. Spre mirarea ei, ajunse într-o sală mare cu N uşi încuiate. Pe fiecare uşă era scris câte un număr natural. Într-o clipă, lângă ea apăru Iepurele Alb şi-i spuse că doar uşile cu numere magice pot fi deschise dacă are cheile potrivite. Pentru a o ajuta, Iepurele Alb i-a explicat că un număr magic este un număr natural care poate fi redus la o cifră prin complementarea cifrelor acestuia faţă de cifra sa maximă din scrierea zecimală, apoi prin complementarea cifrelor numărului obţinut faţă de cifra sa maximă şi aşa mai departe până când se obţine o cifră. Evident, nu toate numerele naturale sunt numere magice. De exemplu, uşa cu numărul 1234 poate fi deschisă cu cheia inscripţionată cu cifra 1 deoarece 1234 este un număr magic ce poate fi redus la cifra 1 prin complementări repetate (1234→3210→123→210→12→10→1), iar uşa cu numărul 1204 nu poate fi deschisă deoarece 1204 nu este un număr magic (indiferent de câte ori s-ar repeta complementarea nu poate fi redus la o cifră: 1204→3240→1204→3240→1204 ... ).

Înainte să dispară, Iepurele Alb îi dădu o cheie aurie inscripţionată cu cifra K şi o avertiză că poate deschide cu această cheie doar uşile cu numere magice ce pot fi reduse la cifra K.

Scrieţi un program care să citească numerele naturale N, K şi cele N numere naturale scrise pe cele N uşi, şi care să determine:

a) cel mai mare număr par dintre numerele scrise pe cele N uşi;
b) numărul uşilor care pot fi deschise cu cheia aurie inscripţionată cu cifra K.

#1060 Porumb

Locuitorii planetei Agria, numiţi agri, au hotărât ca în celebrul an 2012 să le explice pământenilor cum trebuie cules „eficient” un rând cu n porumbi, numerotaţi, în ordine, cu 1, 2, 3,..., n.

Cei n porumbi sunt culeşi de mai mulţi agri. Primul agri merge de-a lungul rândului, plecând de la primul porumb şi culege primul porumb întâlnit, al treilea, al cincilea şi aşa mai departe până la capătul rândului.

Atunci când ajunge la capătul rândului, porneşte al doilea agri şi culege porumbi respectând aceeaşi regulă ca şi primul agri.

Metoda se repetă până când toţi porumbii sunt culeşi.

Pământeanul Ionel încearcă să descopere ce ascunde această metodă şi se gândeşte câţi porumbi culege primul agri, câţi agri culeg un rând cu n porumbi, la a câta trecere este cules porumbul cu numărul x şi care este numărul ultimului porumb cules.

Exemplu: Dacă pe un rând sunt n=14 porumbi atunci sunt 4 agri care culeg porumbii:




  • primul agri culege porumbii 1,3,5,7,9,11,13;
  • al doilea agri culege porumbii 2,6,10,14;
  • al treilea agri culege porumbii 4 şi 12;
  • ultimul agri culege porumbul 8.


Pentru a-l ajuta pe Ionel să descopere secretul acestei metode, scrieţi un program care citeşte cele două numere naturale n şi x şi care determină:

a) numărul de porumbi culeşi de primul agri;
b) numărul de agri care culeg şirul de n porumbi;
c) numărul trecerii la care este cules porumbul cu numărul x;
d) numărul ultimului porumb cules.

#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.