<?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=2176_-_Ruleta</id>
	<title>2176 - Ruleta - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2176_-_Ruleta"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2176_-_Ruleta&amp;action=history"/>
	<updated>2026-05-01T06:48:42Z</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=2176_-_Ruleta&amp;diff=10175&amp;oldid=prev</id>
		<title>RaulOtet: Pagină nouă: Nicuşor este elev în clasa &lt;code&gt;a VI-a&lt;/code&gt; şi s-a gândit că este suficient de mare ca să inventeze un joc nou. Are doar o foaie de hârtie şi un pix. Scrie mai întâi &lt;code&gt;n&lt;/code&gt; numere naturale în cerc. Acestea formează Ruleta numerelor. Jocul se desfăşoară după următoarele reguli:  -	se parcurge şirul numerelor în sensul deplasării acelor de ceasornic;  -	se porneşte de fiecare dată de la acelaşi element;    -	se execută de fiecare dată o rota...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2176_-_Ruleta&amp;diff=10175&amp;oldid=prev"/>
		<updated>2024-07-25T12:30:49Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Nicuşor este elev în clasa &amp;lt;code&amp;gt;a VI-a&amp;lt;/code&amp;gt; şi s-a gândit că este suficient de mare ca să inventeze un joc nou. Are doar o foaie de hârtie şi un pix. Scrie mai întâi &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; numere naturale în cerc. Acestea formează Ruleta numerelor. Jocul se desfăşoară după următoarele reguli:  -	se parcurge şirul numerelor în sensul deplasării acelor de ceasornic;  -	se porneşte de fiecare dată de la acelaşi element;    -	se execută de fiecare dată o rota...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Nicuşor este elev în clasa &amp;lt;code&amp;gt;a VI-a&amp;lt;/code&amp;gt; şi s-a gândit că este suficient de mare ca să inventeze un joc nou. Are doar o foaie de hârtie şi un pix. Scrie mai întâi &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; numere naturale în cerc. Acestea formează Ruleta numerelor. Jocul se desfăşoară după următoarele reguli:&lt;br /&gt;
&lt;br /&gt;
-	se parcurge şirul numerelor în sensul deplasării acelor de ceasornic;&lt;br /&gt;
&lt;br /&gt;
-	se porneşte de fiecare dată de la acelaşi element;  &lt;br /&gt;
&lt;br /&gt;
-	se execută de fiecare dată o rotaţie completă;&lt;br /&gt;
&lt;br /&gt;
-	fiecare element nenul se scade din elementul imediat următor doar dacă este mai mic sau egal cu acesta şi nenul;&lt;br /&gt;
&lt;br /&gt;
Exemplu. Dacă notăm cu &amp;lt;code&amp;gt;R1, R2, R3, R4, R5, R6, R7, R8&amp;lt;/code&amp;gt; şirul numerelor ce formează ruleta din &amp;lt;code&amp;gt;figura 1&amp;lt;/code&amp;gt;, atunci, o rotaţie completă realizează următoarele modificări asupra numerelor din listă:&lt;br /&gt;
&lt;br /&gt;
-    ruleta se opreşte atunci când execută o rotaţie completă şi nu se modifică nici o valoare  din şirul elementelor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Exemplu&amp;lt;/code&amp;gt;. Pentru ruleta din &amp;lt;code&amp;gt;figura 1&amp;lt;/code&amp;gt; se execută &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; rotaţii (dintre care &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; în care se fac modificări):&lt;br /&gt;
&lt;br /&gt;
= Cerința =&lt;br /&gt;
Scrieţi un program care să determine, pentru un şir de &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; numere naturale care indică starea iniţială a ruletei, numărul &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; de rotaţii complete efectuate respectând regulile jocului până la încheierea acestuia şi numărul &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; al elementelor nenule aflate în şir la încheierea jocului.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Fişierul de intrare &amp;lt;code&amp;gt;ruleta.in&amp;lt;/code&amp;gt; conţine pe prima linie numărul &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; de numere naturale aşezate în cerc iar pe linia a doua, separate prin câte un spaţiu, cele &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; valori , în ordinea deplasării, începând cu elementul de la care porneşte ruleta.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
Fişierul de ieşire &amp;lt;code&amp;gt;ruleta.out&amp;lt;/code&amp;gt; conţine pe prima linie, separate printr-un spaţiu, valorile &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; şi &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; (în această ordine).&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;2 ≤ n ≤ 10000&amp;lt;/code&amp;gt;;&lt;br /&gt;
* numerele de pe ruletă sunt numere naturale mai mici sau cel mult egale cu &amp;lt;code&amp;gt;30000&amp;lt;/code&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
= Exemplu: =&lt;br /&gt;
&amp;lt;code&amp;gt;ruleta.in&amp;lt;/code&amp;gt;&lt;br /&gt;
 8&lt;br /&gt;
 1 2 3 4 3 2 3 1&lt;br /&gt;
&amp;lt;code&amp;gt;ruleta.out&amp;lt;/code&amp;gt;&lt;br /&gt;
 4 3&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def roulette_game(numbers):&lt;br /&gt;
    n = len(numbers)&lt;br /&gt;
    rotations = 0&lt;br /&gt;
    modified = True&lt;br /&gt;
&lt;br /&gt;
    while modified:&lt;br /&gt;
        modified = False&lt;br /&gt;
        rotations += 1&lt;br /&gt;
        new_numbers = numbers[:]&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            if numbers[i] != 0 and numbers[i] &amp;lt;= numbers[(i + 1) % n]:&lt;br /&gt;
                new_numbers[(i + 1) % n] -= numbers[i]&lt;br /&gt;
                modified = True&lt;br /&gt;
        numbers = new_numbers&lt;br /&gt;
&lt;br /&gt;
    non_zero_count = sum(1 for x in numbers if x != 0)&lt;br /&gt;
    return rotations, non_zero_count&lt;br /&gt;
&lt;br /&gt;
# Exemplu de utilizare&lt;br /&gt;
initial_numbers = [3, 4, 5, 6, 7, 8, 9, 10]&lt;br /&gt;
rotations, non_zero_count = roulette_game(initial_numbers)&lt;br /&gt;
print(f&amp;quot;Numărul de rotații: {rotations}&amp;quot;)&lt;br /&gt;
print(f&amp;quot;Numărul de elemente nenule rămase: {non_zero_count}&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>RaulOtet</name></author>
	</entry>
</feed>