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
1881 - Platou 4
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!
Sursă: [https://www.pbinfo.ro/probleme/1881/platou4] == Cerinţa == Se consideră un şir '''s''' format din numere întregi. Să se determine numărul de termeni ai şirului obţinut prin eliminarea din cele două extremităţi ale lui '''s''' a unui număr minim de termeni, astfel încât şirul rezultat să înceapă şi să se termine cu câte un număr par. == Date de intrare == Fișierul de intrare '''platou4.in''' conține numere întregi separate prin spații. == Date de ieșire == Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.". Fișierul de ieșire '''platou4.out''' va conține pe prima linie numărul '''k''', reprezentând lungimea șirului obținut. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.". == Restricții și precizări == * fișierul de intrare conține cel mult '''1000''' de numere întregi * numerele din fișier de intrare vor fi din intervalul '''[-99,99]''' * fișierul de intrare conține cel puțin un număr par. == Exemple == === Exemplu 1 === ; '''platou4.in''' : 7 -22 -13 10 31 41 -6 2 101 83 ; '''platou4.out''' : 7 ==== Explicatie ==== Sunt eliminate din șirul s numerele 7 101 83. ==Rezolvare== <syntaxhighlight lang="python" line="1"> def citeste_sir(): while True: try: with open('platou4.in') as fin: n = int(fin.readline()) a = [int(x) for x in fin.readline().split()] if len(a) == n and all(-99 <= x <= 99 for x in a): print("Datele sunt corecte.") return a else: print("Datele nu sunt conform restricțiilor impuse.") except ValueError: print("Trebuie introduse doar numere întregi.") def platou4(): with open('platou4.in') as fin, open('platou4.out', 'w') as fout: a = list(map(int, fin.readline().split())) while a[0] % 2 != 0: a.pop(0) while a[-1] % 2 != 0: a.pop(-1) fout.write(str(len(a)) + '\n') if _name_ == '_main_': platou4() </syntaxhighlight> == Explicații == Acest cod rezolvă problema de la cerința pentru șiruri de numere întregi din fișierul de intrare platou4.in. Funcția citeste_sir() primește ca intrare un fișier text și returnează lista de numere întregi citite din fișier, după ce a verificat dacă sunt conform restricțiilor impuse. Funcția platou4() deschide fișierul de intrare și fișierul de ieșire și citește prima linie din fișierul de intrare, care conține numărul de elemente din șir. Acest număr nu este folosit în restul codului. În continuare, se citește linia cu numerele întregi și se creează o listă a prin aplicarea funcției map(int, fin.readline().split()). Se elimină elementele de la începutul listei a care nu sunt numere pare prin parcurgerea listei și eliminarea elementelor până când primul element rămas este un număr par. Se elimină și elementele de la finalul listei a care nu sunt numere pare prin parcurgerea listei în ordine inversă și eliminarea elementelor până când ultimul element rămas este un număr par. Se scrie în fișierul de ieșire lungimea listei a rămase după eliminarea elementelor nedorite, adică numărul de termeni ai șirului obținut prin eliminarea din cele două extremități ale lui s a unui număr minim de termeni, astfel încât șirul rezultat să înceapă și să se termine cu câte un număr par.
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