1927 - Bitsort: Diferență între versiuni

De la Universitas MediaWiki
(Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/1927/bitsort - Bitsort] ---- == Cerinţa == Se dă un vector cu '''n''' elemente, numere naturale nenule. Afișați termenii în ordine crescătoare. '''Termenii care apar de mai multe ori se vor afișa o singură dată.''' == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi ''n''' numere naturale nenule, separate prin spații. == Date de ieșire == Dacă datele sunt introduse corect, pe ecran se va afi...)
 
Fără descriere a modificării
Linia 65: Linia 65:
if __name__ == '__main__':
if __name__ == '__main__':
     vector = conform_restrictiilor()
     vector = conform_restrictiilor()
    print("Datele sunt corecte.")
     bitsort(vector)
     bitsort(vector)




</syntaxhighlight>
</syntaxhighlight>

Versiunea de la data 26 martie 2023 20:24

Sursa: - Bitsort


Cerinţa

Se dă un vector cu n elemente, numere naturale nenule. Afișați termenii în ordine crescătoare.

Termenii care apar de mai multe ori se vor afișa o singură dată.

Date de intrare

Programul citește de la tastatură numărul n', iar apoi n numere naturale nenule, separate prin spații.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.", iar apoi se afișează elementele vectorului, în ordine crescătoare, separate prin spații, respectând cerința cerută. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.".

Restricţii şi precizări

  • 1 ⩽ n ⩽ 1.000.000
  • cele n numere citite vor fi mai mici decât 300.000

Exemple

Exemplul 1

Intrare
7
9 8 8 8 1 2 8
Ieșire
Datele sunt corecte.
1 2 8 9

Exemplul 2

Intrare
4
1000001 214141251521 20 20
Ieșire
Datele nu corespund restricțiilor impuse.

Exemplul 3

Intrare
5
11 11 20 31 31 39
Ieșire
Datele sunt corecte.
11 20 31 39


Rezolvare

#1927 Bitsort


def bitsort(vector):
    vector.sort()
    for i in range(len(vector) - 1):
        if vector[i] != vector[i + 1]:
            print(vector[i], end=" ")
    if vector[len(vector) - 1] != vector[len(vector) - 2]:
        print(vector[len(vector) - 1])


def conform_restrictiilor():
    n = int(input())
    if n < 1 or n > 1000000:
        print("Datele nu sunt comform restricțiilor impuse.")
        exit()
    vector = list(map(int, input().split()))
    for x in vector:
        if x > 300000 or x < 1:
            print("Datele nu sunt comform restricțiilor impuse.")
            exit()
    return vector


if __name__ == '__main__':
    vector = conform_restrictiilor()
    print("Datele sunt corecte.")
    bitsort(vector)