0279 - Distincte

From Bitnami MediaWiki
Revision as of 09:32, 7 May 2023 by Ardelean Alexandru (talk | contribs) (Pagină nouă: ==Cerința== Se dă un şir cu <code>n</code> elemente, numere naturale cu cel mult <code>8</code> cifre, ordonate crescător. Afişaţi în ordine crescătoare elementele distincte din şir. ==Date de intrare== Fişierul de intrare <code>distincte.in</code> conţine pe prima linie numărul <code>n</code>; urmează cele <code>n</code> elemente ale şirului, dispuse pe mai multe linii şi separate prin spaţii. ==Date de ieșire== Pe ecran se va afișa mesajul: "Datele de int...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința[edit | edit source]

Se dă un şir cu n elemente, numere naturale cu cel mult 8 cifre, ordonate crescător. Afişaţi în ordine crescătoare elementele distincte din şir.

Date de intrare[edit | edit source]

Fişierul de intrare distincte.in conţine pe prima linie numărul n; urmează cele n elemente ale şirului, dispuse pe mai multe linii şi separate prin spaţii.

Date de ieșire[edit | edit source]

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."

Pe următoarea linie se vor afișa elementele distincte din şir, în ordine crescătoare, fiecare pe o linie.

Î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 ≤ 10.000

Exemplu 1[edit | edit source]

Intrare
7
111 111 111 2111 4111 71111 71111
Ieșire
Datele de intrare corespund restricțiilor impuse.
111 2111 4111 71111

Exemplu 3[edit | edit source]

Intrare
-5
111 111 111 2111 4111 71111 71111
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1">

  1. 0279 - Distincte

def conditii(n, numere):

   return len(numere) == n and \
       1 <= n <= 10_000 and \
       numere == sorted(numere) and \
       all(len(str(nr)) <= 8 for nr in numere)


def distincte(numere):

   # set() este o funcție built-in care elimină duplicatele dintr-o listă
   # Folosim sorted() deoarece set() nu returnează un obiect sortat
   print(" ".join(str(x) for x in sorted(set(numere))))


if __name__ == "__main__":

   n = int(input())
   numere = [int(x) for x in input().split()]
   while len(numere) < n:
       numere.extend([int(x) for x in input().split()])
   if not conditii(n, numere):
       print("Datele de intrare nu corespund restricțiilor impuse.")
   else:
       print("Datele de intrare corespund restricțiilor impuse.")
       distincte(numere)

</syntaxhighlight>