0997 - Reuniune: Difference between revisions
No edit summary |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 28: | Line 28: | ||
:3 5 10 37 | :3 5 10 37 | ||
;Ieșire | ;Ieșire | ||
:Datele de intrare corespund restricțiilor impuse. | |||
:1 3 4 5 7 10 37 43 | :1 3 4 5 7 10 37 43 | ||
Line 36: | Line 37: | ||
:3 37 10 5 | :3 37 10 5 | ||
;Ieșire | ;Ieșire | ||
: | :Datele de intrare nu corespund restricțiilor impuse. | ||
==Rezolvare== | ==Rezolvare== | ||
Line 64: | Line 65: | ||
def | def reuniune(multimea_n, multimea_m): | ||
# sorted() este o funcție built-in care sortează (implicit crescător) o listă de elemente (în acest caz, numere) | |||
# set() este o funcție built-in care combină elemente mai multor liste, ignorând orice duplicate | |||
rezultat = sorted(set(multimea_n + multimea_m)) | |||
print(" ".join([str(x) for x in rezultat])) | |||
if __name__ == "__main__": | |||
n, m = [int(x) for x in input().split()] | n, m = [int(x) for x in input().split()] | ||
Line 71: | Line 79: | ||
if not conditii(n, m, multimea_n, multimea_m): | if not conditii(n, m, multimea_n, multimea_m): | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | |||
print("Datele de intrare corespund restricțiilor impuse.") | else: | ||
print("Datele de intrare corespund restricțiilor impuse.") | |||
reuniune(multimea_n, multimea_m) | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 08:50, 5 May 2023
Cerința[edit | edit source]
Se dau două mulțimi de numere naturale. Să se afișeze reuniunea lor.
Date de intrare[edit | edit source]
Fişierul de intrare reuniune.in
conţine pe prima linie numerele n m
, reprezentând numărul de elemente din fiecare mulţime.
Linia a doua conţine n
numere naturale diferite, ordonate crescător, reprezentând elementele primei mulțimi.
Linia a treia conţine m
numere naturale diferite, ordonate crescător, reprezentând elementele celei de-a doua mulțimi.
Date de ieșire[edit | edit source]
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."
Pe următorul rând se va afișa elementele reuniunii celor două mulțimi, în ordine crescătoare, separate prin exact un spațiu.
În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."
Restricții și precizări[edit | edit source]
1 ≤ n , m ≤ 1000
- elementele celor două mulțimi vor fi mai mici decât
1 000 000 000
Exemplu 1[edit | edit source]
- Intrare
- 6 4
- 1 3 4 7 10 43
- 3 5 10 37
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 1 3 4 5 7 10 37 43
Exemplu 2[edit | edit source]
- Intrare
- 6 4
- 7 10 43 1 3 4
- 3 37 10 5
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0997 Reuniune
def conditii(n, m, multimea_n, multimea_m):
if not all(( 1 <= n <= 1_000, 1 <= m <= 1_000, len(multimea_m) == m, multimea_m == sorted(multimea_m), len(multimea_n) == n, multimea_n == sorted(multimea_n), )): return False
for i in multimea_n: if not i < 1_000_000_000: return False for i in multimea_m: if not i < 1_000_000_000: return False
return True
def reuniune(multimea_n, multimea_m):
# sorted() este o funcție built-in care sortează (implicit crescător) o listă de elemente (în acest caz, numere) # set() este o funcție built-in care combină elemente mai multor liste, ignorând orice duplicate rezultat = sorted(set(multimea_n + multimea_m)) print(" ".join([str(x) for x in rezultat]))
if __name__ == "__main__":
n, m = [int(x) for x in input().split()]
multimea_n = [int(x) for x in input().split()] multimea_m = [int(x) for x in input().split()]
if not conditii(n, m, multimea_n, multimea_m): print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare corespund restricțiilor impuse.") reuniune(multimea_n, multimea_m)
</syntaxhighlight>