Lista de probleme 6

#1946 Zece

Pentru cei elevi din clasa a VI-a competiția este foarte importantă și, pentru a se pregăti suplimentar, aceștia lucrează de pe site-ul www.PROBLEMEINFORMATICA.RO.

Pentru a-i încuraja, profesoara de informatică le promite câte o notă de 10 primilor k elevi, cei mai harnici și sârguincioși.

Dacă observă că mai sunt elevi care au același număr de probleme rezolvate ca și cel de pe poziția k, atunci profesoara, echidistantă, mai pune în plus note de 10 la toți aceștia.

Să se scrie un program care, citind numărul N de elevi ai clasei, numărul k de elevi notați cu 10 și N valori reprezentând numărul de probleme rezolvate de fiecare elev, rezolvă cerințele:

1. Afișează în ordine descrescătoare numărul de problem lucrate de elevii care vor primi nota 10.
2. Afișează în ordinea descrescătoare a numărului de probleme rezolvate, numerele de ordine ale tuturor elevilor care primesc nota 10.

O echipă de arheologi a descoperit o hartă străveche a Ținutului de Nord, care era locuit de o civilizație condusă după reguli matematice foarte riguroase. Conform acestei hărți, Ținutul de Nord era împărțit în n rânduri a câte m comitate, fiecare comitat ocupând o suprafață pătrată de un hectar.

Însă descoperirile au mai arătat că această civilizație a fost atacată de la sud-vest de o bacterie periculoasă, ce a acționat astfel: în primul an, a infectat comitatul din colțul din stânga jos al hărții, în al doilea an a infectat cele două comitate vecine cu primul, în al treilea an a infectat cele trei comitate vecine cu anterioarele două și așa mai departe, infecția oprindu-se când bacteria a ajuns la marginea de sus sau la marginea din dreapta a hărții.

Scrieţi un program care să determine numărul de comitate rămase neinfectate după oprirea expansiunii bacteriei.

#1948 Suma7

Într-o matrice pătratică, pentru fiecare poziție identificată prin linia i și coloana j, se adună toate elementele care se găsesc pe linia i sau pe coloana j sau pe diagonalele care trec prin a[i][j] și sunt paralele cu diagonala principală sau cu diagonala secundară, cu precizarea că în această sumă, elementul a[i][j] apare o singură dată.

Să se determine suma maximă care se obține prin procedeul prezentat mai sus precum și poziția corespunzătoare (linia și coloana) sumei maxime. Dacă există mai multe poziţii pentru care se obţine suma maximă, se va alege prima dintre acestea, în ordinea parcurgerii matricei pe linii.

#1944 Suma6

La ultima oră de matematică, Ionel a învățat despre numere speciale. Acestea sunt numere naturale cu număr impar de cifre care au prima cifră egală cu ultima. Ionel a primit ca temă să analizeze un șir format din numere având număr impar de cifre. El trebuie să determine suma cifrelor din mijloc, de la numerele speciale care se găsesc în șirul dat.

Se citește numărul natural n și apoi se citesc n numere naturale având fiecare număr impar de cifre. Să se calculeze suma cifrelor din mijlocul numerelor speciale din șirul dat.

Gigel, mare pasionat de jocuri merge cu tatăl său în excursie. Pe drum acesta adoarme și devine personaj principal
într-o cursă de mașini. În visul său este pilot de formula 1 în jocul Need for Speed!

Observă că benzina e pe sfârșite! Trebuie să alimenteze urgent de la o benzinărie dar acestea “apar” numai când kilometrajul mașinii este un număr palindromic (citit în ambele sensuri este la fel).

Se uită spre kilometraj și trebuie să decidă repede: merge înainte spre următoarea stație de benzină sau se întoarce spre stația de benzină anterioară. Dacă benzinăriile sunt la distanțe egale, Gigel va merge înainte. Dacă kilometrajul mașinii indică deja un număr palindromic, ratează această benzinărie, nemaiputând opri la timp (are viteză mare) și caută o soluție: altă benzinărie.

Presat de timp, Gigel vă roagă să îl ajutați să găsească distanța minimă până la cea mai apropiată benzinărie (numărul palindromic cel mai apropiat) și cât va indica kilometrajul atunci când va sosi la benzinărie.

Corina are un text format din mai multe cuvinte separate între ele printr-un spațiu, pentru care trebuie să utilizeze cuvintele aflate pe poziţii consecutive. Se știe că pentru două cuvinte pe care le vom numi x și y:

  • cuvântul x=x[0]x[1]...x[n-1] este prefix al cuvântului y=y[0]y[1]...y[m-1], dacă x[0]=y[0], x[1]= y[1],…, x[n-1]=y[n-1]
  • cuvântul x=x[0]x[1]...x[n-1] este sufix al cuvântului y=y[0]y[1]...y[m-1], dacă există un indice i, (0≤ i≤ m-1), astfel încât x[0]=y[i], x[1]= y[i+1],…, x[n-1]= y[m-1].

Scrieţi un program care determină pentru un text dat, format din mai multe cuvinte separate între ele printr-un spațiu, două cerințe:

  • cerința 1: câte perechi de cuvinte, notate x și y, aflate pe poziții consecutive în text au proprietatea: x este sufix al lui y sau x este prefix al lui y.
  • cerința 2 : care este perechea de cuvinte, aflate pe poziții consecutive în text, care conține cele mai multe caractere.