<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1706_-_Stele</id>
	<title>1706 - Stele - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1706_-_Stele"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1706_-_Stele&amp;action=history"/>
	<updated>2026-05-01T04:39:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1706_-_Stele&amp;diff=10169&amp;oldid=prev</id>
		<title>RaulOtet: Pagină nouă: Pasionată de astronomie, Teodora dorește să țină evidența numărului de stele din galaxii. Pentru a face lucrurile mai interesante, ea codifică aceste numere într-un sistem propriu, transformându-le într-o înșiruire de litere și cifre după algoritmul următor:  * notează fiecare putere a lui &lt;code&gt;2&lt;/code&gt;, strict mai mică decât &lt;code&gt;2&lt;sup&gt;26&lt;/sup&gt;&lt;/code&gt;, cu o literă a alfabetului, astfel:  {| class=&quot;wikitable&quot; |&lt;code&gt;2&lt;sup&gt;0&lt;/sup&gt;&lt;/code&gt; |&lt;code&gt;2&lt;sup&gt;1&lt;/s...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1706_-_Stele&amp;diff=10169&amp;oldid=prev"/>
		<updated>2024-07-23T11:32:42Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Pasionată de astronomie, Teodora dorește să țină evidența numărului de stele din galaxii. Pentru a face lucrurile mai interesante, ea codifică aceste numere într-un sistem propriu, transformându-le într-o înșiruire de litere și cifre după algoritmul următor:  * notează fiecare putere a lui &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, strict mai mică decât &amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;26&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;, cu o literă a alfabetului, astfel:  {| class=&amp;quot;wikitable&amp;quot; |&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt; |&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;1&amp;lt;/s...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Pasionată de astronomie, Teodora dorește să țină evidența numărului de stele din galaxii. Pentru a face lucrurile mai interesante, ea codifică aceste numere într-un sistem propriu, transformându-le într-o înșiruire de litere și cifre după algoritmul următor:&lt;br /&gt;
&lt;br /&gt;
* notează fiecare putere a lui &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, strict mai mică decât &amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;26&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;, cu o literă a alfabetului, astfel:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;7&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;9&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;10&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;11&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;12&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|c&lt;br /&gt;
|d&lt;br /&gt;
|e&lt;br /&gt;
|f&lt;br /&gt;
|g&lt;br /&gt;
|h&lt;br /&gt;
|i&lt;br /&gt;
|j&lt;br /&gt;
|k&lt;br /&gt;
|l&lt;br /&gt;
|m&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;13&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;14&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;15&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;16&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;17&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;18&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;19&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;20&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;21&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;22&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;23&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;24&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;2&amp;lt;sup&amp;gt;25&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|n&lt;br /&gt;
|o&lt;br /&gt;
|p&lt;br /&gt;
|q&lt;br /&gt;
|r&lt;br /&gt;
|s&lt;br /&gt;
|t&lt;br /&gt;
|u&lt;br /&gt;
|v&lt;br /&gt;
|w&lt;br /&gt;
|x&lt;br /&gt;
|y&lt;br /&gt;
|z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* reprezintă fiecare număr ca un șir de cifre și litere obținut din scrierea acelui număr ca sumă de puteri ale lui &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;; dacă o putere este folosită de mai multe ori în descompunerea numărului atunci ea va fi precedată în șir de numărul de utilizări.&lt;br /&gt;
&lt;br /&gt;
Un număr poate fi reprezentat astfel în mai multe moduri. De exemplu, pentru numărul &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; printre variantele de reprezentare avem:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;100 = cfg = 2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt; = 4+32+64 = 100&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;100 = 2ab2cde2f = 2*2&amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;+2*2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;+24+2*2&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt; = 2*1+2+2*4+8+16+2*32 = 100&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;100 = 16bcg = 16*2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt; = 16*2+4+64 = 100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cerința =&lt;br /&gt;
Scrieți un program care rezolvă următoarele cerinţe:&lt;br /&gt;
&lt;br /&gt;
# cunoscând &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; numărul de stele dintr-o galaxie, determină o reprezentare codificată a acestui număr formată doar din litere mici distincte ordonate alfabetic;&lt;br /&gt;
# cunoscând &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt;, reprezentând numărul de galaxii și &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; numere în scriere codificată, reprezentând numărul de stele din fiecare galaxie, determină scrierea zecimală a numărului total de stele din cele &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; galaxii.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Fișierul de intrare &amp;lt;code&amp;gt;stele.in&amp;lt;/code&amp;gt; conține pe prima linie un număr natural &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;, reprezentând cerinţa care trebuie rezolvată (1 sau 2). Dacă cerinţa este 1, pe a doua linie se află un număr natural &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, ce reprezintă numărul care trebuie codificat.&lt;br /&gt;
&lt;br /&gt;
Dacă cerinţa este 2, pe a doua linie se află un număr natural &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; reprezentând numărul de galaxii, iar pe următoarele &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; linii câte un șir de caractere reprezentând numărul de stele dintr-o galaxie, codificat folosind algoritmul descris mai sus.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
Fișierul de ieșire &amp;lt;code&amp;gt;stele.out&amp;lt;/code&amp;gt; va conţine o singură linie pe care va fi scris un șir de litere mici distincte, ordonate alfabetic, reprezentând scrierea codificată a numărului &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; (dacă cerinţa este 1) sau un număr natural în scriere zecimală ce reprezintă numărul total de stele din cele &amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt; galaxii (dacă cerinţa este 2).&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;1 ≤ s ≤ 2&amp;lt;sup&amp;gt;26&amp;lt;/sup&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;1 ≤ g ≤ 1000&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reprezentările codificate din fişierul de intrare pot avea maximum &amp;lt;code&amp;gt;420&amp;lt;/code&amp;gt; caractere.&lt;br /&gt;
* Numărul care poate apărea în fața unei litere poate avea maximum &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; cifre.&lt;br /&gt;
* Pentru teste valorând 30% din punctaj cerinţa este 1.&lt;br /&gt;
* Pentru teste corespunzătoare cerinţei 2 valorând 20% din punctaj valoarea obținută nu depășește &amp;lt;code&amp;gt;10&amp;lt;sup&amp;gt;18&amp;lt;/sup&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Exemplul 1 =&lt;br /&gt;
&amp;lt;code&amp;gt;stele.in&amp;lt;/code&amp;gt;&lt;br /&gt;
 1&lt;br /&gt;
 100&lt;br /&gt;
&amp;lt;code&amp;gt;stele.out&amp;lt;/code&amp;gt;&lt;br /&gt;
 cfg&lt;br /&gt;
&lt;br /&gt;
=== Explicație ===&lt;br /&gt;
Cerința este 1. Reprezentarea numărului &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt;  care respectă cerinţa este: &amp;lt;code&amp;gt;cfg = 2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;+2&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt; = 4+32+64 = 100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def num_to_code(s):&lt;br /&gt;
    powers_of_2 = [&lt;br /&gt;
        1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192,&lt;br /&gt;
        16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432&lt;br /&gt;
    ]&lt;br /&gt;
    letters = &amp;quot;abcdefghijklmnopqrstuvwxyz&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    result = []&lt;br /&gt;
    i = len(powers_of_2) - 1&lt;br /&gt;
    while s &amp;gt; 0:&lt;br /&gt;
        if s &amp;gt;= powers_of_2[i]:&lt;br /&gt;
            result.append(letters[i])&lt;br /&gt;
            s -= powers_of_2[i]&lt;br /&gt;
        i -= 1&lt;br /&gt;
    &lt;br /&gt;
    return &amp;#039;&amp;#039;.join(sorted(result))&lt;br /&gt;
&lt;br /&gt;
def code_to_num(code):&lt;br /&gt;
    letters = &amp;quot;abcdefghijklmnopqrstuvwxyz&amp;quot;&lt;br /&gt;
    powers_of_2 = {&lt;br /&gt;
        letter: 2 ** i for i, letter in enumerate(letters)&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    total = 0&lt;br /&gt;
    for char in code:&lt;br /&gt;
        total += powers_of_2[char]&lt;br /&gt;
    &lt;br /&gt;
    return total&lt;br /&gt;
&lt;br /&gt;
def total_stars_in_galaxies(galaxies):&lt;br /&gt;
    total_stars = 0&lt;br /&gt;
    for galaxy in galaxies:&lt;br /&gt;
        total_stars += code_to_num(galaxy)&lt;br /&gt;
    return total_stars&lt;br /&gt;
&lt;br /&gt;
# Exemple de utilizare&lt;br /&gt;
s = 100&lt;br /&gt;
code_representation = num_to_code(s)&lt;br /&gt;
print(f&amp;quot;Reprezentarea codificată a numărului {s}: {code_representation}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
g = 3&lt;br /&gt;
galaxies = [&amp;quot;cfg&amp;quot;, &amp;quot;bcd&amp;quot;, &amp;quot;ace&amp;quot;]&lt;br /&gt;
total_stars = total_stars_in_galaxies(galaxies)&lt;br /&gt;
print(f&amp;quot;Numărul total de stele din {g} galaxii: {total_stars}&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>RaulOtet</name></author>
	</entry>
</feed>