2616 - Paznici1: Difference between revisions
No edit summary |
Vardai Erwin (talk | contribs) |
||
(One intermediate revision by the same user not shown) | |||
Line 9: | Line 9: | ||
Programul citește de la tastatură numerele '''naturale nenule n m'''. | Programul citește de la tastatură numerele '''naturale nenule n m'''. | ||
==Date de ieșire== | ==Date de ieșire== | ||
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran numărul '''P''', reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse." | |||
==Restricții și precizări== | ==Restricții și precizări== | ||
1 ≤ '''n''', '''m''' ≤ 1 000 000 | 1 ≤ '''n''', '''m''' ≤ 1 000 000 | ||
Line 15: | Line 16: | ||
;Intrare | ;Intrare | ||
:2 2 | :2 | ||
:2 | |||
;Ieșire | ;Ieșire | ||
:Datele de intrare corespund restricțiilor impuse. | |||
:1 | :1 | ||
==Rezolvare== | ==Rezolvare== |
Latest revision as of 18:00, 22 April 2023
Cerință[edit | edit source]
Un parc de formă dreptunghiulară este împărțit în n * m sectoare, dispuse pe n linii și m coloane. Între oricare două sectoare învecinate, precum și pe exteriorul parcului sunt alei, ca în imaginea următoare (sectoarele sunt colorate cu verde, aleele cu gri):
Administrația parcului hotărăște angajarea unor paznici. Fiecare paznic va ocupa o poziție fixă pe o alee și va supraveghea sectoarele învecinate, ca mai jos. Astfel, un paznic poate supraveghea unul, două sau patru sectoare.
Scrieți un program care citește n și m și determină numărul minim de paznici care trebuie angajați pentru a supraveghea parcul în aceste condiții.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele naturale nenule n m.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran numărul P, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
Restricții și precizări[edit | edit source]
1 ≤ n, m ≤ 1 000 000
Exemplul 1[edit | edit source]
- Intrare
- 2
- 2
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 1
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line="1" start="1"> def validare(n, m):
# Verifică dacă numărul de linii si de coloane apartine restrictiilor impuse if n < 1 or m < 1 or n > 1000000 or m > 1000000: return False return True
def numar_paznici(n, m):
# Dacă numărul de rânduri este impar, îl facem par prin adăugarea unei unități. if n % 2 == 1: n += 1 # Dacă numărul de coloane este impar, îl facem par prin adăugarea unei unități. if m % 2 == 1: m += 1 # Numărul minim de paznici necesari este dat de suprafața totală a parcului, # împărțită la suprafața pe care o poate supraveghea un singur paznic (adică 2x2). # Pentru a face acest lucru, împărțim numărul de rânduri la 2 și numărul de coloane la 2, # apoi înmulțim rezultatul obținut. return (n // 2) * (m // 2)
if __name__ == "__main__":
# Primește input-ul de la utilizator n = int(input("Introduceți numărul de rânduri: ")) m = int(input("Introduceți numărul de coloane: "))
# Verifică dacă input-ul este valid și afișează rezultatul if validare(n, m): print("Datele de intrare corespund restricțiilor impuse.") print(numar_paznici(n, m)) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>