<?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=1004_-_Eureni</id>
	<title>1004 - Eureni - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1004_-_Eureni"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1004_-_Eureni&amp;action=history"/>
	<updated>2026-05-02T21:12:24Z</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=1004_-_Eureni&amp;diff=8689&amp;oldid=prev</id>
		<title>AntalKrisztian: Pagină nouă: == Cerinţa == Pentru cadourile pe care Moş Crăciun urmează să le cumpere copiilor cuminţi, Consiliul Polului Nord a alocat suma de &#039;&#039;&#039;S&#039;&#039;&#039; eureni. Ştiind că în comerţul polar se utilizează &#039;&#039;&#039;n+1&#039;&#039;&#039; tipuri de bancnote de valori &#039;&#039;&#039;1&#039;&#039;&#039;, &#039;&#039;&#039;e&lt;sup&gt;1&lt;/sup&gt; , e&lt;sup&gt;2&lt;/sup&gt;, e&lt;sup&gt;3&lt;/sup&gt;&#039;&#039;&#039;,…, &#039;&#039;&#039;e&lt;sup&gt;n&lt;/sup&gt;&#039;&#039;&#039; şi faptul că Moşul trebuie să primească un număr minim de bancnote pentru suma aprobată, să se determine numărul de bancnote din fiecare tip utiliz...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1004_-_Eureni&amp;diff=8689&amp;oldid=prev"/>
		<updated>2023-12-29T17:31:31Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == Pentru cadourile pe care Moş Crăciun urmează să le cumpere copiilor cuminţi, Consiliul Polului Nord a alocat suma de &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039; eureni. Ştiind că în comerţul polar se utilizează &amp;#039;&amp;#039;&amp;#039;n+1&amp;#039;&amp;#039;&amp;#039; tipuri de bancnote de valori &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;e&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; , e&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, e&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;#039;&amp;#039;&amp;#039;,…, &amp;#039;&amp;#039;&amp;#039;e&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;&amp;#039;&amp;#039;&amp;#039; şi faptul că Moşul trebuie să primească un număr minim de bancnote pentru suma aprobată, să se determine numărul de bancnote din fiecare tip utiliz...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Pentru cadourile pe care Moş Crăciun urmează să le cumpere copiilor cuminţi, Consiliul Polului Nord a alocat suma de &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039; eureni. Ştiind că în comerţul polar se utilizează &amp;#039;&amp;#039;&amp;#039;n+1&amp;#039;&amp;#039;&amp;#039; tipuri de bancnote de valori &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;e&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; , e&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, e&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;#039;&amp;#039;&amp;#039;,…, &amp;#039;&amp;#039;&amp;#039;e&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;&amp;#039;&amp;#039;&amp;#039; şi faptul că Moşul trebuie să primească un număr minim de bancnote pentru suma aprobată, să se determine numărul de bancnote din fiecare tip utilizat în plata sumei şi numărul total de bancnote care i s-au alocat.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;eureniin.txt&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numerele naturale &amp;#039;&amp;#039;&amp;#039;S n e&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;eureniout.txt&amp;#039;&amp;#039;&amp;#039; va conține mai multe linii: pe fiecare linie va fi scrisă valoare unei bancnote folosită în plata sumei &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039; și numărul de bancnote folosite, separate printr-un spațiu, în ordinea descrescătoare a valorilor bancnotelor folosite. Pe ultima linie se va scrie numai numărul total de bancnote folosite.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 &amp;lt; S &amp;lt; 2 000 000 000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 &amp;lt; n &amp;lt; 10&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 &amp;lt; e &amp;lt; 10&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* se presupune că există un număr nelimitat de bancnote de fiecare tip&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; eureniin.txt&lt;br /&gt;
 107 4 5&lt;br /&gt;
; eureniout.txt&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
 25 4&lt;br /&gt;
 5 1&lt;br /&gt;
 1 2&lt;br /&gt;
 7&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Sunt &amp;#039;&amp;#039;&amp;#039;5&amp;#039;&amp;#039;&amp;#039; tipuri de bancnote, cu valorile: &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;5&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;25&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;125&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;625&amp;#039;&amp;#039;&amp;#039; eureni. Pentru a plăti suma de &amp;#039;&amp;#039;&amp;#039;107&amp;#039;&amp;#039;&amp;#039; eureni se folosesc &amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039; bancnote de &amp;#039;&amp;#039;&amp;#039;25&amp;#039;&amp;#039;&amp;#039; eureni, &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; bancnotă de &amp;#039;&amp;#039;&amp;#039;5&amp;#039;&amp;#039;&amp;#039; eureni și &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039; bancnote de &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; euren, în total &amp;#039;&amp;#039;&amp;#039;7&amp;#039;&amp;#039;&amp;#039; bancnote.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; eureniin.txt&lt;br /&gt;
 grudmgvyem&lt;br /&gt;
; eureniout.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# Funcția de validare verifică dacă datele de intrare sunt în intervalul specificat&lt;br /&gt;
def validare(s_validare, n_validare, e_validare):&lt;br /&gt;
    # Verificăm dacă S, n și e sunt în intervalul specificat&lt;br /&gt;
    if (s_validare &amp;lt;= 1 or s_validare &amp;gt; 2000000000 or&lt;br /&gt;
            n_validare &amp;lt;= 1 or n_validare &amp;gt; 10 or e_validare &amp;lt;= 1 or e_validare &amp;gt; 10):&lt;br /&gt;
        raise ValueError  # Ridicăm o eroare dacă S, n sau e nu sunt în intervalul specificat&lt;br /&gt;
    file_out.write(&amp;quot;Datele de intrare corespund restrictiilor impuse.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculeaza_bancnote(s_calc, n_calc, e_calc):&lt;br /&gt;
    # Calculăm valorile bancnotelor&lt;br /&gt;
    bancnote = [e_calc ** index for index in range(n_calc + 1)]&lt;br /&gt;
    # Inițializăm numărul de bancnote din fiecare tip cu 0&lt;br /&gt;
    nr_bancnote = [0] * (n_calc+1)&lt;br /&gt;
    # Calculăm numărul de bancnote din fiecare tip&lt;br /&gt;
    for index in range(n_calc, -1, -1):&lt;br /&gt;
        nr_bancnote[index] = s_calc // bancnote[index]&lt;br /&gt;
        s_calc %= bancnote[index]&lt;br /&gt;
    return nr_bancnote&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    file_in = open(&amp;quot;eureniin.txt&amp;quot;, &amp;quot;r&amp;quot;)&lt;br /&gt;
    file_out = open(&amp;quot;eureniout.txt&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        # Citim S, n și e&lt;br /&gt;
        S_main, n_main, e_main = map(int, file_in.readline().split())&lt;br /&gt;
        # Validăm datele de intrare&lt;br /&gt;
        validare(S_main, n_main, e_main)&lt;br /&gt;
        # Calculăm numărul de bancnote din fiecare tip&lt;br /&gt;
        nr_bancnote_main = calculeaza_bancnote(S_main, n_main, e_main)&lt;br /&gt;
        # Scriem numărul de bancnote din fiecare tip în fișierul de ieșire&lt;br /&gt;
        for i in range(n_main, -1, -1):&lt;br /&gt;
            if nr_bancnote_main[i] &amp;gt; 0:&lt;br /&gt;
                file_out.write(str(e_main ** i) + &amp;#039; &amp;#039; + str(nr_bancnote_main[i]) + &amp;#039;\n&amp;#039;)&lt;br /&gt;
        # Scriem numărul total de bancnote în fișierul de ieșire&lt;br /&gt;
        file_out.write(str(sum(nr_bancnote_main)) + &amp;#039;\n&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
    # Dacă datele de intrare nu sunt valide, afișăm un mesaj de eroare&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        file_out.write(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
    # Dacă datele de intrare sunt incomplete, afișăm un mesaj de eroare&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        file_out.write(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>AntalKrisztian</name></author>
	</entry>
</feed>