0547 - Numarare6

From Bitnami MediaWiki
Revision as of 15:35, 14 March 2023 by Csatari Mălina (talk | contribs) (Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/547/numarare6 - Numarare6] ---- == Cerinţa == Se citește un vector cu '''n''' elemente, numere naturale. Să se determine câte elemente ale vectorului sunt egale cu diferența dintre cea mai mare și cea mai mică valoare din vector. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, reprezentând elementele vectorului. == Date de ieșire == Dacă datele sunt introduse corect...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursa: - Numarare6


Cerinţa

Se citește un vector cu n elemente, numere naturale. Să se determine câte elemente ale vectorului sunt egale cu diferența dintre cea mai mare și cea mai mică valoare din vector.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou va afișa numărul cerut. În cazul contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări

  • 1 ⩽ n ⩽ 1.000
  • elementele vectorului vor fi mai mici decât 1.000.000

Exemple

Exemplul 1

Intrare
5
7 7 9 2 4
Ieșire
Datele sunt introduse corect.
2

Exemplul 2

Intrare
5
8 8 8 9 1
Ieșire
Datele sunt introduse corect.
3

Exemplul 3

Intrare
12345
Ieșire
Datele nu corespund restricțiilor impuse.


Rezolvare

<syntaxhighlight lang="python" line>

  1. 0547 Numarare6

def nr_elem_egale_cu_dif_maxim_minim(vector, n):

   minim = 9999999
   maxim = -9999999
   for i in range(n):
       if vector[i] < minim:
           minim = vector[i]
       if vector[i] > maxim:
           maxim = vector[i]
   diferenta = maxim - minim
   nr_elem_egale_cu_diferenta = 0
   for i in range(n):
       if diferenta == vector[i]:
           nr_elem_egale_cu_diferenta += 1
   print(nr_elem_egale_cu_diferenta)


def citire_conform_restrictiilor():

   n = int(input())
   if n < 1 or n > 1000:
       print("Datele nu corespund restricțiilor impuse.")
       exit()
   vector = list(map(int, input().split()))
   for x in vector:
       if x >= 1000000:
           print("Datele nu corespund restricțiilor impuse.")
           exit()
   if n != len(vector):
       print("Datele nu corespund restricțiilor impuse.")
       exit()
   print("Datele sunt introduse corect.")
   return vector, n


if __name__ == '__main__':

   vector, n = citire_conform_restrictiilor()
   nr_elem_egale_cu_dif_maxim_minim(vector, n)





</syntaxhighlight>