4236 - Bacterie1: Difference between revisions

From Bitnami MediaWiki
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>

  1. 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>