Primii pași Algoritmi... la gura sobeiSorin GrozaIarna este unul dintre anotimpurile cele mai îndrăgite de copii, atât pentru jocurile de iarnă dar mai ales pentru faptul că vine Moș Crăciun. Nici în această perioadă algoritmii nu au fost uitați. Mai ales că afară este frig, iar la gura sobei este locul ideal pentru a "coace" niște algoritmi. În așteptarea lui Moș Crăciun, dar și auzind că pentru anumiți algoritmi care să-l ajute în muncă, Moșul va oferi frumoase cadouri, vă prezentăm câteva probleme compuse și rezolvate împreună cu Ionuț Stan, un elev pasionat de informatică.
Itinerarul lui Moș CrăciunCu ocazia sărbătorilor de iarnă Moș Crăciun a primit scrisori de la foarte mulți copii. Deoarece este ocupat cu procurarea și repartizarea cadourilor după dorința fiecărui copil, Moșul îl roagă pe spiridușul informatician să scrie un program care va stabili traseul lui Moș Crăciun. Traseul va fi o listă care va conține orașele împreună cu numărul de copii din fiecare oraș, în ordinea descrescătoare a numărului de copii, iar în caz de egalitate a numărului de copii din două sau mai multe orașe, acestea vor fi afișate în ordine alfabetică.
Intrare n = 6 Aiud, Vaslui, Aiud, Deva, Deva, Arad
Ieșire Itinerarul lui Mos Craciun: Aiud 2 Deva 2 Arad 1 Vaslui 1
Soluție După citirea orașelor se va ordona alfabetic șirul acestora, deoarece la număr egal de copii afișarea se va face alfabetic. Se construiește șirul f care conține numărul de copii din fiecare oraș. Se ordonează șirul orașelor (folosind vectorul f) în ordinea descrescătoare a numărului de copii. După aceea se va trece la afișarea listei, utilizând șirul orașelor (ordonat descrescător după numărul de copii, iar în caz de egalitate în ordine alfabetică) și șirul f.
O problemă pentru Moș Crăciun și nu numai...În drum spre copiii care i-au trimis scrisori, Moșul trece și pe lângă geamul casei a doi copii săraci. Văzând bradul frumos împodobit s-a gândit că și cei doi copii ar merita câte un cadou. El are în sanie n saci, iar în fiecare sac un număr de cadouri. Deoarece este așteptat de alți copii de la care a primit scrisori, Moșul nu are timp să desfacă sacii și hotărăște să lase doi saci. Pentru a duce cât mai multe cadouri la ceilalți copii, el trebuie să aleagă doi saci astfel încât numărul cadourilor rămase în ceilalți saci să fie cât mai mare și să se împartă exact la cei n copii care îl așteaptă. Care vor fi sacii pe care îi va lăsa Moșul și câte cadouri va primi fiecare copil? În situația în care Moșul nu poate să facă o astfel de alegere, vă lăsam pe voi să hotărâți cum se va descurca Moșul.
Intrare n=6 8,3,12,9,10,7
Ieșire Mosul da sacii 2 si 5 Fiecare copil primeste 6 cadouri
Soluție În variabila s vom calcula suma cadourilor din saci, deoarece pentru a afla numărul de cadouri, mai puțin doi saci, vom scădea din numărul total de cadouri numărul cadourilor din cei doi saci (variabila d). Vom încerca pe rând toate combinațiile de doi saci și, de fiecare dată, vom vedea dacă respectă condiția cerută. Dacă vom găsi o soluție mai bună, vom păstra în variabilele sac1 și sac2 indicii sacilor. În final vom tipări aceste valori, precum și numărul cadourilor primite de fiecare copil.
Moș Crăciun are pretenții!După cum bine se cunoaște, una dintre dorințele lui Moș Crăciun la întâlnirea cu un copil este aceea de a-l întreba care au fost notele primite în timpul semestrului. Deoarece timpul lui Moș Crăciun este foarte limitat (datorită faptului că trebuie să meargă în foarte multe locuri) el a lansat următoarea idee. Copiii nu vor citi toate notele din carnet, ci vor proceda astfel: mai multe note consecutive din carnet, egale între ele, vor fi înlocuite de cuvintele "x de y", unde x reprezintă numărul de note egale, iar y valoarea acestora. Este clar că timpul în care un copil își spune notele va fi mai scurt. Scrieți un program care afișează lista cerută de Moș.
Intrare n=9 9,9,9,9,10,10,10,8,8
Ieșire Lista pentru Mos Craciun: 4 de 9 3 de 10 2 de 8
Soluție Pentru a transcrie șirul de note conform cerinței problemei, vom incrementa un contor (k) cât timp avem elemente consecutive egale. Când se termină o astfel de secvență vom tipări "k de x[i]". Vom parcurge șirul de note de la început și până la sfârșit, astfel că, în final, vom obține lista pentru Moș Crăciun.
Vă propunem să rezolvați și voi câteva probleme la "gura sobei" și să i le prezentați lui Moș Crăciun la următoarea vizită.
Sărbătoare în lanț În ultima perioadă de timp au fost o mulțime de sărbători, unele mai lungi, altele mai scurte. Se citește numărul de zile (ale sărbătorii) și o literă reprezentând codificarea sărbătorii respective. O secvență de cel puțin două zile codificate la fel reprezintă o sărbătoare în lanț. Să se determine numărul sărbătorilor în lanț și cea mai lungă dintre ele. Pe un rând se va afișa un număr, reprezentând numărul sărbătorilor în lanț, iar pe celălalt rând se va scrie codul sărbătorii și începutul, respectiv sfârșitul acesteia.
Intrare n = 12 N,N,L,C,C,C,C,L,S,R,R,L
Ieșire 3 C 4 7
Gospodinele În cartier s-a zvonit că se va scumpi untul. Toate gospodinele au dat fuga la magazinul alimentar pentru cumpărături de sărbători. Fiecare gospodină va cumpăra unt de toți banii de care dispune, la prețul indicat de vânzătoare. În urma cumpărării, fiecare gospodină va rămâne cu o sumă de bani. Să se determine suma de bani cu care au rămas cele mai multe gospodine. Gospodinele care nu au bani nici măcar pentru un pachet de unt, nu vor fi luate în considerare. Se vor citi de la intrare: numărul de gospodine, suma de bani a fiecărei gospodine, apoi prețul unui pachet de unt.
Intrare 5 - număr gospodine 22, 2, 28, 20, 9 3 - preț pachet unt
Ieșire 1
Parcarea În oraș s-a construit o parcare foarte frumoasă. Pentru cei care administrează această parcare, ea se consideră a fi descrisă printr-un dreptunghi. O mașină parcată este "păstrată" în calculatorul firmei printr-o pereche (i,j). În această parcare există și o porțiune de parcare pentru VIP-uri, în care bineînțeles nu poate parca oricine. Dacă, totuși, o persoană neautorizată va parca aici, atunci aceasta va fi amendată. Citindu-se de la intrare numărul de mașini, pozițiile lor și cele două colțuri opuse ale porțiunii interzise, scrieți un program care va afișa numărul amenzilor aplicate.
Intrare 7 - numărul mașinilor (2,3); (3,2); (5,3); (6,1); (5,4); (6,5); (4,6) - poziții mașini (6,2) - (3,5) - colțuri parcare VIP
Ieșire 4 amenzi [cuprins] |