Sunteți pe pagina 1din 5

Enunț

Într-o pădure sunt plantați N*M copaci, pe N rânduri şi M coloane, fiecare copac aflându-se la egală
distanţă de copacii vecini. Întrucât în pădure este cam întuneric, pădurarul (care supraveghează
pădurea) montează K becuri (câte un bec într-un copac). Aceste becuri au consum diferit de energie
electrică. Fiecare bec luminează doar o parte dintre copaci. Un copac este luminat de un bec dacă,
trasând o linie dreaptă de la el la bec, niciun alt copac sau bec nu se află pe acea linie.

Energia electrică fiind scumpă, pădurarul va trebui să renunţe la K-1 becuri şi să păstreze doar becul care
luminează numărul maxim C de copaci. Dacă mai multe becuri dintre cele K luminează C copaci,
pădurarul îl va păstra pe cel mai util adică care are cel mai mic consum de energie electrică.

poza_bec

quick image uploader

Cerința

Să se scrie un program care să determine:

1. numărul maxim X de copaci ce pot fi luminați de unul dintre cele K becuri

2. poziția (rândul R şi coloana C) becului cel mai util păstrat de pădurar.

Date de intrare

Fișierul de intrare bec.in conține:

pe prima linie, patru numere naturale P N M K, separate prin câte un spaţiu, reprezentând: cerința P ce
trebuie rezolvată (1 sau 2), numărul N de rânduri, numărul M de coloane, şi numărul K de becuri

pe fiecare din următoarele K linii, câte trei numere naturale A B C, separate prin câte un spaţiu,
reprezentând rândul A şi coloana B în care se află fiecare bec şi consumul C de energie electrică a
acestuia.

Date de ieșire

Dacă P=1, atunci fișierul de ieșire bec.out va conține pe prima linie numărul X ( răspunsul la cerința 1).
Altfel, dacă P=2, atunci fişierul de ieşire bec.out va conţine pe prima linie cele două numere naturale R C
(răspunsul la cerința 2) separate prin câte un spațiu, cu semnificația din enunț.

Restricții și precizări

2 ≤ N ≤ 150; 2 ≤ M ≤ 150
1 ≤ K ≤ N; 1 ≤ K ≤ M; 1 ≤ K ≤ 100

1 ≤ A ≤ N; 1 ≤ B ≤ M; 1 ≤ C ≤ 10000 pentru fiecare bec

nu există două becuri asezate pe același rând și aceeași coloanâ

nu există două becuri cu același consum de energie electrică

se acordă 50% din punctaj pentru rezolvarea corectă a cerinței 1 și 50% din punctaj pentru rezolvarea
corectă a cerinței 2.

Exemplul 1:

bec.in

1543

2 3 80

4 2 100

4 3 70

bec.out

14

Explicație

P=1 . Se rezolvă cerința 1.

Numerotăm copacii ca în tabloul alăturat. Primul bec, situat în rândul 2 şi coloana 3 (consum energie 80)
luminează 14 copaci (nu îi luminează pe cei numerotați cu 5, 12 şi 16).

Al doilea bec, situat în rândul 4 şi coloana 2 (consum energie 100) luminează 13 copaci (nu îi luminează
pe cei numerotați cu 2, 6, 7 şi 13).

Al treilea bec, situat în rândul 4 şi coloana 3 (consum energie 70) luminează 14 copaci (nu le luminează
pe cei numerotați cu 3, 5 şi 12).

Exemplul 2:

bec.in

2543

2 3 80
4 2 100

4 3 70

bec.out

43

Explicație

P=2. Se rezolvă cerința 2.

Becurile ce luminează numărul maxim de copaci (X=14) sunt: 1 (consum de energie 80) și 3 (consum de
energie 70). Becul 3 are consumul de energie mai mic decât cel al primului bec (70<80) și se află în
rândul R=4 şi coloana C=3

Se consideră un șir S format din N cifre nenule.

O secvență a șirului S este o succesiune de cifre din S care apar pe poziții consecutive. Un număr X
asociat unei secvențe din S este numărul în baza 10 care se formează cu toate cifrele din secvența
respectivă, în ordinea în care apar în aceasta.

Un subșir al șirului S este o succesiune de cifre din S care apar în S pe pozițiile p 1 , p 2 , … , p k astfel
încât p 1 < p 2 < … < p k și k <= N . Un număr X asociat unui subșir al lui S este numărul în baza 10 care
se formează cu toate cifrele din subșirul respectiv, în ordinea în care apar în acesta.

Un număr X se numește nevricos dacă este egal cu triplul produsului cifrelor lui X.

Cerința

a. Dându-se un șir S de cifre nenule, să se determine câte dintre secvențele din S au numere asociate
nevricoase.

b. Dându-se un șir S de cifre nenule, să se determine câte dintre subșirurile lui S au numere asociate
nevricoase.

Date de intrare
Fișierul de intrare nevricos.in conține pe prima linie șirul S de cifre nenule.

Date de ieșire

Fișierul de ieșire nevricos.out va conține două linii:

- pe prima linie numărul de secvențe din S care au asociate numere nevricoase.

- pe a doua linie numărul de subșiruri ale lui S care au asociate numere nevricoase.

Restricții și precizări

* Șirul S va conține maxim 1.000.000 de cifre

Exemplu

nevricos.in

153175

nevricos.out

Explicație

S = 153175

a. Toate secvențele lui S sunt: 1, 15, 153, 1531, 15317, 153175, 5, 53, 531, 5317, 53175, 3, 31, 317, 3175,
1, 17, 175, 7, 75, 5;

Dintre aceste secvențe, doar secvența 15 satisface proprietatea cerută: 15 = (1*5) + (1*5) + (1*5);

b. Subșirurile lui S care îndeplinesc condițiile sunt: 15 ( 1 5 3 1 7 5), 15 ( 1 5 3 1 7 5 ), 15 (1 5 3 1 7 5 ).

S-ar putea să vă placă și