4109 - afisare22: Difference between revisions
Nagy Lenard (talk | contribs) No edit summary |
Nagy Lenard (talk | contribs) No edit summary |
||
Line 41: | Line 41: | ||
maxim = y[i] | maxim = y[i] | ||
for i in range(n): | for i in range(n): | ||
advevarat = True | |||
if x[i] < maxim: | if x[i] < maxim: | ||
advevarat = False | |||
if | if advevarat: | ||
exista = True | exista = True | ||
print(x[i], end=" ") | print(x[i], end=" ") |
Revision as of 14:22, 31 March 2023
Sursa: - afisare22
Cerinţa
Se dă un vector x cu n elemente numere întregi, și un vector y cu m elemente, de asemenea numere întregi. Să se afișeze toate elementele din vectorul x care sunt mai mari decât toate elementele din vectorul y.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale vectorului x. Apoi și citește m și cele m elemente ale lui y.
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 elementele din vectorul x care sunt mai mari decât toate elementele din vectorul y, sau NU EXISTA dacă vectorul x nu conține astfel de elemente. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".
Restricţii şi precizări
- 1 ⩽ n, m ⩽ 10.000
- elementele celor 2 vectori vor fi din intervalul [-1.000.000.000,1.000.000.000]
Exemple
Exemplul 1
- Intrare
- 7
- 9 -6 5 14 2 1 10
- 8
- 8 14 9 14 16 15 4 6
- Ieșire
- Datele sunt introduse corect.
- NU EXISTA
Exemplul 2
- Intrare
- 7
- 1 2 3 4
- Ieșire
- Datele nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line>
- 4109
def afis_el_din_vect_x_mai_mari_decat_toate_el_din_y(n, x, m, y):
maxim = -1000000000 exista = False for i in range(m): if y[i] > maxim: maxim = y[i] for i in range(n): advevarat = True if x[i] < maxim: advevarat = False if advevarat: exista = True print(x[i], end=" ") if not exista: print("NU EXISTA")
def citire_conform_restrictiilor():
n = int(input()) x = list(map(int, input().split())) if n != len(x): print("Datele nu corespund restricțiilor impuse.") exit() m = int(input()) y = list(map(int, input().split())) if m != len(y): print("Datele nu corespund restricțiilor impuse.1") exit() for element in x: if element < -1000000000 or element > 1000000000: print("Datele nu corespund restricțiilor impuse.3") exit() for element in y: if element < -1000000000 or element > 1000000000: print("Datele nu corespund restricțiilor impuse.4") exit() if n < 1 or n > 10000: print("Datele nu corespund restricțiilor impuse.1") exit() if m < 1 or m > 10000: print("Datele nu corespund restricțiilor impuse.1") exit() print("Datele sunt introduse corect.") return n, x, m, y
if __name__ == '__main__':
n, x, m, y = citire_conform_restrictiilor() afis_el_din_vect_x_mai_mari_decat_toate_el_din_y(n, x, m, y)
</syntaxhighlight>
Explicație rezolvare
Acest program primește două liste de numere întregi x și y și determină toate elementele din lista x care sunt mai mari decât toate elementele din lista y. Pentru a face asta, programul găsește cel mai mare element din lista y, apoi compară fiecare element din lista x cu acest maxim și afișează elementele care sunt mai mari. Dacă nu există astfel de elemente, programul afișează "NU EXISTA".
Funcția citire_conform_restrictiilor() primește datele de intrare conform unor restricții impuse și verifică dacă acestea sunt respectate. Aceasta primește doi vectori x și y și lungimile lor corespunzătoare n și m. Se verifică dacă lungimile corespund cu valorile n și m date ca intrare. De asemenea, se verifică dacă elementele din ambele liste sunt în intervalul [-1000000000, 1000000000]. Dacă datele de intrare nu respectă restricțiile impuse, programul va afișa un mesaj corespunzător și se va opri.
Funcția afis_el_din_vect_x_mai_mari_decat_toate_el_din_y() primește cele două liste și apelează algoritmul descris mai sus pentru a găsi elementele din lista x mai mari decât toate elementele din lista y. Dacă nu există astfel de elemente, afișează mesajul "NU EXISTA".