0997 - Reuniune
Cerința
Se dau două mulțimi de numere naturale. Să se afișeze reuniunea lor.
Date de intrare
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
Fişierul de ieşire reuniune.out
va conţine pe prima linie elementele reuniunii celor două mulțimi, în ordine crescătoare, separate prin exact un spațiu.
Restricții și precizări
1 ≤ n , m ≤ 1000
- elementele celor două mulțimi vor fi mai mici decât
1 000 000 000
Exemplu 1
- Intrare
- 6 4
- 1 3 4 7 10 43
- 3 5 10 37
- Ieșire
- 1 3 4 5 7 10 37 43
Exemplu 2
- Intrare
- 6 4
- 7 10 43 1 3 4
- 3 37 10 5
- Ieșire
- Date de intrare gresite!
Rezolvare
<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 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): return print("Date de intrare gresite!")
reuniune = sorted(set(multimea_n + multimea_m))
print(" ".join([str(x) for x in reuniune]))
if __name__ == "__main__":
main()
</syntaxhighlight>