<?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=2363_-_Joc_8</id>
	<title>2363 - Joc 8 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2363_-_Joc_8"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2363_-_Joc_8&amp;action=history"/>
	<updated>2026-05-01T12:10:31Z</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=2363_-_Joc_8&amp;diff=4798&amp;oldid=prev</id>
		<title>Tamas Claudia at 18:26, 26 April 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2363_-_Joc_8&amp;diff=4798&amp;oldid=prev"/>
		<updated>2023-04-26T18:26:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:26, 26 April 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Cerinţa ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Cerinţa ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Elena și Maria au primit cadou un joc. Dintr-o cutie ce conține mai multe numere, fiecare extrage pe rand câte un număr și trebuie să descopere anumite condiții îndeplinite de aceste numere. Ele vor să determine câte numere alternante au fost extrase. Un număr este alternant dacă are număr impar de cifre și dacă orice cifră a numărului, cu excepția primei și a ultimei cifre se învecinează fie cu două cifre mai mari decât ea, fie cu două cifre mai mici decât ea.&amp;lt;br&amp;gt;Cunoscând numărul &#039;&#039;&#039;n&#039;&#039;&#039; de numere, precum şi cele &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale extrase din cutie determinați câte dintre acestea au fost alternante.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Elena și Maria au primit cadou un joc. Dintr-o cutie ce conține mai multe numere, fiecare extrage pe rand câte un număr și trebuie să descopere anumite condiții îndeplinite de aceste numere. Ele vor să determine câte numere alternante au fost extrase. Un număr este alternant dacă are număr impar de cifre și dacă orice cifră a numărului, cu excepția primei și a ultimei cifre se învecinează fie cu două cifre mai mari decât ea, fie cu două cifre mai mici decât ea.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&amp;lt;br&amp;gt;Cunoscând numărul &#039;&#039;&#039;n&#039;&#039;&#039; de numere, precum şi cele &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale extrase din cutie determinați câte dintre acestea au fost alternante.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Date de intrare ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Date de intrare ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;joc8.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; de numere naturale, iar pe următoarea linie cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;joc8.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; de numere naturale, iar pe următoarea linie cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2363_-_Joc_8&amp;diff=4797&amp;oldid=prev</id>
		<title>Tamas Claudia: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/2363/joc8] ---- == Cerinţa == Elena și Maria au primit cadou un joc. Dintr-o cutie ce conține mai multe numere, fiecare extrage pe rand câte un număr și trebuie să descopere anumite condiții îndeplinite de aceste numere. Ele vor să determine câte numere alternante au fost extrase. Un număr este alternant dacă are număr impar de cifre și dacă orice cifră a numărului, cu excepția primei și a ultimei cifre se învecineaz...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2363_-_Joc_8&amp;diff=4797&amp;oldid=prev"/>
		<updated>2023-04-26T18:26:03Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/2363/joc8] ---- == Cerinţa == Elena și Maria au primit cadou un joc. Dintr-o cutie ce conține mai multe numere, fiecare extrage pe rand câte un număr și trebuie să descopere anumite condiții îndeplinite de aceste numere. Ele vor să determine câte numere alternante au fost extrase. Un număr este alternant dacă are număr impar de cifre și dacă orice cifră a numărului, cu excepția primei și a ultimei cifre se învecineaz...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2363/joc8]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Elena și Maria au primit cadou un joc. Dintr-o cutie ce conține mai multe numere, fiecare extrage pe rand câte un număr și trebuie să descopere anumite condiții îndeplinite de aceste numere. Ele vor să determine câte numere alternante au fost extrase. Un număr este alternant dacă are număr impar de cifre și dacă orice cifră a numărului, cu excepția primei și a ultimei cifre se învecinează fie cu două cifre mai mari decât ea, fie cu două cifre mai mici decât ea.&amp;lt;br&amp;gt;Cunoscând numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; de numere, precum şi cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale extrase din cutie determinați câte dintre acestea au fost alternante.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;joc8.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; de numere naturale, iar pe următoarea linie cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&amp;#039;&amp;#039;&amp;#039;, apoi fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;joc8.out&amp;#039;&amp;#039;&amp;#039; va conţine pe prima linie un număr ce reprezintă numărul numerelor alternante citite.În caz contrar, pe ecran se va afișa: &amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele nu au fost introduse corect.&amp;quot;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 &amp;lt; n &amp;lt; 1000000&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere din joc au cel mult nouă cifre fiecare.&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
; joc8.in&lt;br /&gt;
: 10&lt;br /&gt;
: 193 7 721 14263 28 279 9 1523142 769 15752 &lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; joc8.out&lt;br /&gt;
: 6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# 2363&lt;br /&gt;
&lt;br /&gt;
def verifica_datele(n, numere):&lt;br /&gt;
    # Verifică dacă n este un număr întreg pozitiv mai mic decât 1000000&lt;br /&gt;
    if not isinstance(n, int) or n &amp;lt; 1 or n &amp;gt; 1000000:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă există exact n numere în listă și dacă fiecare număr are cel mult nouă cifre&lt;br /&gt;
    if len(numere) != n or not all(isinstance(nr, int) and 0 &amp;lt;= nr &amp;lt;= 999999999 for nr in numere):&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def rezolva_problema(n, numere):&lt;br /&gt;
    numere_alternante = 0&lt;br /&gt;
&lt;br /&gt;
    for nr in numere:&lt;br /&gt;
        nr_str = str(nr)&lt;br /&gt;
        nrcif = len(nr_str)&lt;br /&gt;
&lt;br /&gt;
        if nrcif % 2 == 0 or nrcif == 1:&lt;br /&gt;
            continue&lt;br /&gt;
&lt;br /&gt;
        alternant = True&lt;br /&gt;
&lt;br /&gt;
        for i in range(1, nrcif - 1):&lt;br /&gt;
            if abs(int(nr_str[i]) - int(nr_str[i - 1])) != 2 or abs(int(nr_str[i]) - int(nr_str[i + 1])) != 2:&lt;br /&gt;
                alternant = False&lt;br /&gt;
                break&lt;br /&gt;
&lt;br /&gt;
        if alternant:&lt;br /&gt;
            numere_alternante += 1&lt;br /&gt;
&lt;br /&gt;
    return numere_alternante&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    with open(&amp;quot;joc8.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
        n = int(f.readline().strip())&lt;br /&gt;
        numere = list(map(int, f.readline().strip().split()))&lt;br /&gt;
&lt;br /&gt;
    if verifica_datele(n, numere):&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        rezultat = rezolva_problema(n, numere)&lt;br /&gt;
        with open(&amp;quot;joc8.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
            f.write(str(rezultat) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele nu au fost introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
Funcția &amp;#039;&amp;#039;&amp;#039;verifica_datele(n, numere)&amp;#039;&amp;#039;&amp;#039; verifică dacă datele citite din fișierul de intrare sunt corecte, respectând restricțiile impuse de problemă. Ea primește numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; de numere naturale citite din fișier și lista numere conținând aceste numere și returnează True dacă datele sunt introduse corect și False în caz contrar. Mai precis, ea verifică dacă n este un număr întreg pozitiv mai mic decât 1000000 și dacă lista de numere are exact &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; elemente, fiecare fiind un număr natural cu cel mult nouă cifre.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funcția &amp;#039;&amp;#039;&amp;#039;rezolva_problema(n, numere)&amp;#039;&amp;#039;&amp;#039; primește aceleași date ca și funcția anterioară și calculează numărul de numere alternante din lista numere. O valoare este considerată alternantă dacă are număr impar de cifre și dacă orice cifră a numărului, cu excepția primei și a ultimei cifre, se învecinează fie cu două cifre mai mari decât ea, fie cu două cifre mai mici decât ea. Funcția parcurge toate numerele din lista numere, verifică dacă fiecare dintre ele este alternant și în caz afirmativ, crește cu 1 un contor pentru numerele alternante găsite.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;În funcția principală main, se deschide fișierul de intrare &amp;#039;&amp;#039;&amp;#039;&amp;quot;joc8.in&amp;quot;&amp;#039;&amp;#039;&amp;#039;, se citesc datele și se verifică dacă sunt introduse corect apelând funcția verifica_datele(n, numere). Dacă această funcție returnează True, se afișează un mesaj corespunzător și se calculează numărul de numere alternante apelând funcția rezolva_problema(n, numere). Acest număr se scrie în fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;&amp;quot;joc8.out&amp;quot;&amp;#039;&amp;#039;&amp;#039;. În caz contrar, se afișează un alt mesaj corespunzător.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
</feed>