0997 - Reuniune

From Bitnami MediaWiki
Revision as of 14:34, 24 March 2023 by Ardelean Alexandru (talk | contribs) (Pagină nouă: ==Cerința== Se dau două mulțimi de numere naturale. Să se afișeze reuniunea lor. ==Date de intrare== Fişierul de intrare <code>reuniune.in</code> conţine pe prima linie numerele <code>n m</code>, reprezentând numărul de elemente din fiecare mulţime. Linia a doua conţine <code>n</code> numere naturale diferite, ordonate crescător, reprezentând elementele primei mulțimi. Linia a treia conţine <code>m</code> numere naturale diferite, ordonate crescător, reprez...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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">

  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>