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
1663 - Vali
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!
== Enunț == De Ziua Îndrăgostiţilor Vali a hotărât să organizeze o petrecere mare pe stadionul oraşului. La petrecere pot participa numai şi numai îndrăgostiţi care şi-au procurat biletele din timp. Biletele oricărui cuplu sunt aproape identice. Ele au proprietatea că numărul de serie are prima cifră 1 pentru băieţi şi *prima cifră 2 pentru fete, continuarea celor două numere este identică. De exemplu, dacă prietenul are biletul cu numărul 134, atunci prietena lui are biletul 234, iar dacă prietena are biletul 2234567890, atunci prietenul ei are biletul 1234567890. Bineînțeles, că și Vali are bilet și speră să câștige un cadou. Biletul lui Vali are aceeași proprietate ca celelalte bilete, cu o singură excepție: Vali nu va participa cu pereche la acest eveniment. Pe parcursul desfășurării petrecerii, biletele de intrare vor avea şi rolul de bilet de tombolă. Acestea vor fi introduse într-o urnă şi câteva dintre ele vor fi extrase, iar norocoşii proprietari ai biletelor vor primi cadouri valoroase. Se mai știe că există probabilitatea ca unii participanți să vină la petrecere cu bilete falsificate, având numere identice cu cele de pe un bilet original. Acest fapt se va depista cu ușurință în momentul extragerii. == Cerinţă == Cunoscând numerele de serie ale tuturor biletelor de intrare la acest eveniment, aflaţi: a) dacă pe Vali o cheamă Valentina sau îl cheamă Valentin; b) numărul biletului lui Vali. == Date de intrare == Fişierul valiin.txt are următoarea structură: Pe prima linie un număr natural p. Pentru toate testele de intrare, numărul p poate avea doar valoarea 1 sau valoarea 2. Pe a doua linie un număr natural n, reprezentând numărul de participanţi. Următoarele n linii conţin câte un număr de bilet. == Date de ieşire == Fişierul valiout.txt are următoarea structură: Dacă valoarea lui p este 1, se va rezolva numai punctul a) din cerinţă. În acest caz, în fişierul de ieşire se va scrie un singur cuvânt: valentin sau valentina (totul cu litere mici!) , în concordanţă cu numele lui Vali din certificatul de naștere. Dacă valoarea lui p este 2, se va rezolva numai punctul b) din cerinţă. În acest caz, în fişierul de ieșire se va scrie un număr natural, reprezentând numărul de pe biletul lui Vali. == Restricţii şi precizări == * 3 ≤ n ≤ 299999 * pentru 30% din teste avem p=1, iar pentru 70% din teste avem p=2; * pentru 90% din teste numărul biletului nu depășește tipul long (C++) respectiv longint (Pascal), pentru 10% din teste există bilete cu numere până la 17 cifre. * pentru 90% din teste biletul lui Vali nu este falsificat, iar pentru 10% din teste numărul biletului lui Vali coincide cu numărul unui alt bilet xeroxat. == Exemple == '''valiin.txt''' 1 5 1345 2649012 15480 2345 1649012 '''valiout.txt''' valentin == Explicație == Singurul bilet fără pereche este 15480, deci posesorul este un băiat, îl cheamă Valentin (scris cu ‚v’ mic în fişier). == Rezolvare == <syntaxhighlight lang="python"> def valentin_sau_valentina(bilet): if int(bilet[0]) % 2 == 1: return "valentin" else: return "valentina" def gaseste_bilet_Vali(bilete): for i in range(len(bilete)): bilet = bilete[i] if bilet not in bilete[:i] and bilet not in bilete[i + 1:]: return bilet def main(): with open("valiin.txt", "r") as file: p = int(file.readline().strip()) n = int(file.readline().strip()) if not (3 <= n <= 299999): print("Numarul de participanti nu respecta restrictia.") return bilete = [file.readline().strip() for _ in range(n)] if p == 1: with open("valiout.txt", "w") as file_out: file_out.write(valentin_sau_valentina(gaseste_bilet_Vali(bilete))) elif p == 2: with open("valiout.txt", "w") as file_out: file_out.write(gaseste_bilet_Vali(bilete)) if __name__ == "__main__": main() </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