Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
3356 - Alfa
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Cerinţa == Se dă un șir format din '''n''' numere naturale. Se mai dă o valoare '''x''' și se garantează că șirul începe și se termină cu valoarea '''x'''. Transformați șirul astfel: * Elementele cu valoarea '''x''' rămân pe pozițiile lor; * Secvențele de elemente diferile de '''x''' aflate între două poziții cu valoarea '''x''' se ordonează crescător (între aceleași două elemente cu valoarea '''x''' se vor afla aceleași elemente ca la început dar în ordine crescătoare). == Date de intrare == Fișierul '''alfain.txt''' conține pe prima linie un număr natural '''n''' reprezentând dimensiunea șirului și un număr '''x''' cu semnificația de mai sus. Pe linia a doua '''n''' numere naturale, separate prin câte un spațiu, reprezentând elementele șirului. == Date de ieşire == Fișierul '''alfaout.txt''' conține cele '''n''' elemente ale șirului în ordinea cerută. == Restricții și precizări == * '''2 <= n <= 1000''' * Elementele șirului dat sunt naturale nenule formate din maximum '''4''' cifre * Pentru '''40''' de puncte șirul conține doar două elemente cu valoarea '''x''' (primul și ultimul). == Exemplul 1 == ; alfain.txt : 10 3 : 3 4 1 2 3 7 9 8 3 3 ; alfaout.txt : Datele introduse corespund restricțiilor impuse. : 3 1 2 4 3 7 8 9 3 3 == Exemplul 2 == ; alfain.txt : 1 3 : 3 4 1 2 3 7 9 8 3 3 ; alfaout.txt : Datele introduse nu corespund restricțiilor impuse. == Rezolvare == <syntaxhighlight lang="python" line> # 3356 - Alfa def validare(lungime_intrare1, numar_tinta1, lista_numere1): # functia de validare a datelor de intrare if lungime_intrare1 > 1000 or lungime_intrare1 < 2: raise ValueError if len(lista_numere1) != lungime_intrare1: raise ValueError if lista_numere1[0] != numar_tinta1 or lista_numere1[-1] != numar_tinta1: raise ValueError for numar in lista_numere1: if not (0 < numar < 10000): raise ValueError return "Datele de intrare corespund restrictiilor impuse." def transforma_lista(lungime_intrare1, numar_tinta1, lista_numere1): i = 0 while i < lungime_intrare1: if lista_numere1[i] == numar_tinta1: j = i + 1 while j < lungime_intrare1 and lista_numere1[j] != numar_tinta1: j += 1 if j < lungime_intrare1: lista_numere1[i + 1:j] = sorted(lista_numere1[i + 1:j]) i = j else: i += 1 return lista_numere1 if __name__ == '__main__': fisier_intrare = open("alfain.txt", "r") # declararea fisierelor fisier_iesire = open("alfaout.txt", "w") # fisierul out trebuie declarat cu optiunea "w" (write) try: lungime_intrare, numar_tinta = map(int, fisier_intrare.readline().split()) lista_numere = list(map(int, fisier_intrare.readline().split())) mesaj_validare = validare(lungime_intrare, numar_tinta, lista_numere) # apelul functiei de validare lista_numere = transforma_lista(lungime_intrare, numar_tinta, lista_numere) # apelul functiei de rezolvare fisier_iesire.write(mesaj_validare + '\n') fisier_iesire.write(' '.join(map(str, lista_numere)) + '\n') except ValueError: fisier_iesire.write("Datele de intrare nu corespund restrictiilor impuse") </syntaxhighlight>
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width