Lista de probleme 5

#2211 ture

Să considerăm o matrice cu N linii şi N coloane cu elemente numere naturale. În această matrice trebuie să plasăm două ture, în poziţii distincte. Spunem că un element al matricei este atacat dacă se află pe aceeaşi linie sau pe aceeaşi coloană cu una dintre cele două ture. Elementele din poziţiile celor două ture nu sunt considerate atacate.
Turele vor fi plasate astfel încât suma elementelor atacate să fie cât mai mare. Scrieţi un program care să determine suma elementelor atacate (maximă posibil).

#2213 sirdivk

Cu ajutorul a trei cifre date a, b, c, unde a > 0, se construieşte următorul şir de numere:

De exemplu, pentru a=1, b=3, c=7, putem construi şirul:
1,13,137, 1371,13713, 137137, 1371371, 13713713, ...
Scrieţi un program care determină câte numere divizibile cu k se găsesc în primii n termeni ai şirului dat.

Olimpiada Municipala de Informatica, Iasi, 2007

Î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

#2212 eval

Să considerăm o expresie aritmetică care conţine ca operanzi numai variabile al căror nume este format dintr-o singură literă mică a alfabetului englez. Valorile iniţiale ale variabilelor ce pot interveni în expresie sunt: a = 1, b = 2, …, z = 26. În expresie pot fi utilizaţi doi operatori binari (+ şi , reprezentând adunarea şi respectiv scăderea) şi doi operatori unari (++ şi --, reprezentând operatorul de incrementare şi respectiv operatorul de decrementare). Operatorii unari ++ şi –– pot fi plasaţi numai înainte sau după o variabilă. Dacă operatorul unar ++ apare înaintea unei variabile, atunci valoarea variabilei este mărită cu 1 înainte ca valoarea variabilei să fie luată în calculul expresiei. De exemplu, valoarea expresiei ++c–b este 2, iar valoarea variabilei c după evaluarea expresiei va fi 4. Când operatorul unar ++ apare după variabilă, valoarea variabilei este mărită cu 1 după ce valoarea acelei variabile este folosită la calculul expresiei. De exemplu, valoarea expresiei c++–b este 1, iar valoarea variabilei c după evaluarea expresiei va fi 4. Operatorul –– se comportă la fel, cu observaţia că valoarea variabilei se va micşora cu 1. Operatorii unari au prioritate mai mare decât cei binari (mai exact, se execută mai întâi incrementările/decrementările, apoi adunările şi scăderile). În cazul în care există mai multe operaţii cu aceeaşi prioritate, acestea vor fi executate în ordine, de la stânga la dreapta. Scrieţi un program care să determine valoarea unei expresii, precum şi valorile finale ale variabilelor folosite în expresie.

Olimpiada Municipala de Informatica, Iasi, 2007

#2210 zero1

Să considerăm o tablă de joc constituită din N*N pătrate organizate sub forma unei matrice cu N linii şi N coloane. În fiecare pătrat este scris un număr natural. La începutul jocului, în colţul din stânga-sus al tablei se află un pion. Acest pion trebuie să ajungă în colţul din dreapta-jos al tablei. La un pas pionul se poate mişca din poziţia sa curentă (x, y) fie în pătratul de dedesubt (x+1, y) (pe linia următoare, aceeaşi coloană), fie în pătratul din dreapta poziţiei sale (x, y+1) (aceeaşi linie, coloana următoare), dar nu poate fi plasat într-un pătrat care conţine valoarea 0. Drumul unui pion este constituit din toate pătratele prin care trece pionul pentru a ajunge din colţul stânga-sus până în colţul din dreapta-jos al tablei. Costul unui drum este definit ca produsul numerelor aflate în pătratele situate pe drum. Costul unui drum este optimal dacă numărul de zerouri aflate la sfârşitul scrierii sale în baza 10 este minim. Scrieţi un program care să determine numărul de zerouri aflate la sfârşitul costului optimal.