4151 - AMM

From Bitnami MediaWiki
Revision as of 17:14, 15 March 2023 by Csatari Mălina (talk | contribs) (Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/4151/amm - AMM] ---- == 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,...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursa: - AMM


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. 4151 AMM

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>