4236 - Bacterie1: Difference between revisions
No edit summary |
No edit summary |
||
Line 22: | Line 22: | ||
Harta Ținutului de Nord cuprinde '''3''' rânduri a câte '''5''' comitate fiecare, având în total '''15''' comitate. Expansiunea bacteriei s-a oprit după '''3''' ani, deoarece a atins marginea de sus; au rămas '''9''' comitate neinfectate. | Harta Ținutului de Nord cuprinde '''3''' rânduri a câte '''5''' comitate fiecare, având în total '''15''' comitate. Expansiunea bacteriei s-a oprit după '''3''' ani, deoarece a atins marginea de sus; au rămas '''9''' comitate neinfectate. | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# 4236 - Bacterie1 | |||
def verificare_restrictii(n1, m1): | def verificare_restrictii(n1, m1): | ||
# functia de verificare a datelor de intrare | # functia de verificare a datelor de intrare |
Revision as of 17:33, 10 November 2023
Cerinţa
Scrieţi un program care să determine numărul de comitate rămase neinfectate după oprirea expansiunii bacteriei.
Date de intrare
Programul citește de la tastatura numerele n m, dimensiunile hărții.
Date de ieşire
Programul va afișa pe ecran numărul de comitate rămase neinfectate după oprirea expansiunii bacteriei.
Restricții și precizări
- 1 ≤ n ≤ 1.000.000.000, 1 ≤ m ≤ 1.000.000.000, numere naturale;
- aceasta este problema #Bacterie , dar opeațiile de intrare/ieșire se fac cu consola.
Exemplul 1
- Intrare
- 3 5
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 9
Exemplul 2
- Intrare
- n
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
Explicație
Harta Ținutului de Nord cuprinde 3 rânduri a câte 5 comitate fiecare, având în total 15 comitate. Expansiunea bacteriei s-a oprit după 3 ani, deoarece a atins marginea de sus; au rămas 9 comitate neinfectate. <syntaxhighlight lang="python" line>
- 4236 - Bacterie1
def verificare_restrictii(n1, m1):
# functia de verificare a datelor de intrare if 1 <= n1 <= 10**9 and 1 <= m1 <= 10**9: return True else: return False
def comitate_neinfectate(n1, m1):
# Numarul total de comitate este n * m total = n1 * m1 # Numarul de comitate infectate este egal cu numarul de comitate de pe margini infectate = 2 * (n1 + m1 - 5) # Numarul de comitate neinfectate este totalul minus cele infectate neinfectate = total - infectate return neinfectate
if __name__ == "__main__":
try: # Citim datele de intrare n, m = map(int, input().split()) if verificare_restrictii(n, m): # verificam datele de intrare print("Datele de intrare corespund restrictiilor impuse.") # Calculam numarul de comitate neinfectate rezultat = comitate_neinfectate(n, m) # Afisam rezultatul print(rezultat) else: print("Datele de intrare nu corespund restrictiilor impuse.") # ne asteptam la 2 tipuri de erori din cauza datelor de intrare, le tratam corespunzator except ValueError: print("Datele de intrare nu corespund restrictiilor impuse.") except IndexError: print("Datele de intrare nu corespund restrictiilor impuse.")
</syntaxhighlight>