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
3385 - Lumini 1
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!
== Enunt == Nicoleta, o fată curioasă, dorește să afle cine dintre colegii de clasă are bradul cu cele mai multe luminițe, cât și numărul de luminițe din acest brad. Fiind olimpică la informatică și iubind provocările, colegii i-au comunicat prin SMS doar numărul de divizori corespunzător numărului de luminițe din brad, acesta fiind și cel mai mic număr cu această proprietate. De exemplu, George, colegul de bancă, i-a dat numărul 5, corespunzător unui număr de 16 luminițe, mai exact D16 = {1, 2, 4, 8, 16}, iar 16 este numărul cel mai mic cu exact 5 divizori. Mesajele colegilor vor fi de forma: NrDiv Nume, unde NrDiv reprezintă numărul de divizori, iar Nume reprezintă numele colegului care a trimis mesajul. == Cerinţa == Scrieţi un program care să determine: 1) Numărul de luminițe din bradul cu cele mai multe luminițe. 2) Numele colegului care are bradul cu cele mai multe luminițe. == Date de intrare == Fișierul de intrare lumini.in conţine pe prima linie cerința 1 sau 2. Pe a doua linie numărul n, reprezentând numărul colegilor Nicoletei, iar pe următoarele n linii vor fi mesajele colegilor, sub forma descrisă în enunţ, câte un mesaj pe o linie. Date de ieșire == Date de ieșire == Fișierul de ieșire lumini.out va conţine o singură linie pe care va fi scris numărul de luminițe al bradului cu cele mai multe luminițe (cerința 1) sau numele primului coleg din lista primită care are bradul cu cele mai multe luminițe (cerința 2). == Restricţii şi precizări == * 1 ≤ n ≤ 5000, n număr natural; * 1 < NrDiv ≤ 120, NrDiv este număr natural; * numele oricărui coleg are maximum 23 de caractere alfabetice; * numărul maxim de luminițe din instalația de brad va fi 65536 (216). == Exemplul 1 == ; lumini.in 1 3 12 Tryp 13 Mike 14 Gymi ; lumini.out 4096 == Explicație == Tryp are o instalație cu 60 de luminițe. Mike are o instalație cu 4096 de luminițe. Gymi are o instalație cu 192 de luminițe. <br> == Exemplul 2 == ; lumini.in 2 6 22 Andreea 26 Iustina 40 Iuliana 26 Andreia 27 Corina 30 Raluca ; lumini.out Iustina == Explicație == Iustina și Andreia, au fiecare câte o instalație cu 12288 de luminițe. Iustina apare prima în listă. <br> == Rezolvare == <syntaxhighlight lang="python" line> def calculate_lights(N, messages): max_divisors = 0 max_lights = 0 owner = "" for message in messages: divisors, name = message.split() divisors = int(divisors) lights = divisors * (divisors + 1) // 2 if divisors > max_divisors or (divisors == max_divisors and lights > max_lights): max_divisors = divisors max_lights = lights owner = name return max_lights if N == 1 else owner def main(): with open("lumini.in", "r") as fin: choice = int(fin.readline().strip()) N = int(fin.readline().strip()) messages = [fin.readline().strip() for _ in range(N)] result = calculate_lights(N, messages) with open("lumini.out", "w") as fout: fout.write(str(result)) 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