0490 - AfisareMinMax: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/490/afisareminmax - AfisareMinMax] ---- == Cerinţa == Se citește un vector cu '''n''' elemente, numere naturale distincte. Să se afișeze elementele cuprinse între elementul cu valoarea minimă și cel cu valoare maximă din vector, inclusiv acestea. == 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 sun...
 
No edit summary
Line 33: Line 33:
def elem_cuprinse_intre_elem_minim_maxim(vector, n):
def elem_cuprinse_intre_elem_minim_maxim(vector, n):
     minim = 100000
     minim = 100000
     maxim = -100000
     maxim = 0
     poz_min = 0
     poz_min = 0
     poz_max = 0
     poz_max = 0

Revision as of 17:15, 15 March 2023

Sursa: - AfisareMinMax


Cerinţa

Se citește un vector cu n elemente, numere naturale distincte. Să se afișeze elementele cuprinse între elementul cu valoarea minimă și cel cu valoare maximă din vector, inclusiv acestea.

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 vor afișa elementele cerute, separate prin exact un spațiu. Î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 100.000

Exemple

Exemplul 1

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

Exemplul 2

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


Rezolvare

<syntaxhighlight lang="python" line>

  1. 0490 AfisareMinMax

def elem_cuprinse_intre_elem_minim_maxim(vector, n):

   minim = 100000
   maxim = 0
   poz_min = 0
   poz_max = 0
   for i in range(n):
       if vector[i] > maxim:
           maxim = vector[i]
           poz_max = i
       if vector[i] < minim:
           minim = vector[i]
           poz_min = i
   if poz_min > poz_max:
       aux = poz_min
       poz_min = poz_max
       poz_max = aux
   for i in range(poz_min, poz_max + 1):
       print(vector[i], end=' ')


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 >= 100000:
           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()
   elem_cuprinse_intre_elem_minim_maxim(vector, n)





</syntaxhighlight>