0997 - Reuniune: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
Line 64: Line 64:




def main():
def reuniune(multimea_n, multimea_m):
    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 76:


     if not conditii(n, m, multimea_n, multimea_m):
     if not conditii(n, m, multimea_n, multimea_m):
         return print("Datele de intrare nu corespund restricțiilor impuse.")
         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 = sorted(set(multimea_n + multimea_m))
        reuniune(multimea_n, multimea_m)
 
    print(" ".join([str(x) for x in reuniune]))
 
 
if __name__ == "__main__":
    main()


</syntaxhighlight>
</syntaxhighlight>

Revision as of 13:50, 29 April 2023

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

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

  • 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
Datele de intrare nu corespund restricțiilor impuse.

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 reuniune(multimea_n, multimea_m):

   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>