<?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=0276_-_PareImpare</id>
	<title>0276 - PareImpare - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0276_-_PareImpare"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0276_-_PareImpare&amp;action=history"/>
	<updated>2026-05-01T22:11:09Z</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=0276_-_PareImpare&amp;diff=5673&amp;oldid=prev</id>
		<title>Csula Beatrice at 14:02, 30 April 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0276_-_PareImpare&amp;diff=5673&amp;oldid=prev"/>
		<updated>2023-04-30T14:02:37Z</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 14:02, 30 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-l90&quot;&gt;Line 90:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 90:&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;br&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;br&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;&amp;lt;/syntaxhighlight&amp;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;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Explicaţie cod==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Acest cod implementează două funcții care citesc datele din fișierul &#039;&#039;&#039;pareimpare.in&#039;&#039;&#039; și verifică dacă respectă restricțiile impuse. Dacă datele sunt corecte, se apelează funcția &quot;pareimpare&quot; care sortează și afișează în fișierul &#039;&#039;&#039;pareimpare.out&#039;&#039;&#039; numerele pare și impare distincte din datele citite.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Mai exact, funcția &#039;&#039;&#039;conform_restrictiilor&#039;&#039;&#039; începe prin a inițializa trei liste: o listă goală numită &#039;&#039;&#039;vector&#039;&#039;&#039; și două liste numite &#039;&#039;&#039;vector_pare&#039;&#039;&#039; și &#039;&#039;&#039;vector_impare&#039;&#039;&#039;, inițial, totodată, goale. Funcția deschide fișierul &#039;&#039;&#039;pareimpare.in&#039;&#039;&#039; și citeste fiecare linie, apoi fiecare caracter din linie și îl adaugă la lista &#039;&#039;&#039;vector&#039;&#039;&#039; dacă este un număr întreg. Dacă aceasta este lista cu toate datele, funcția verifică dacă aceasta are o lungime mai mică sau egală cu 100.000 și dacă fiecare număr este între 0 și 99. Dacă aceste condiții sunt îndeplinite, funcția adaugă fiecare număr par în lista &#039;&#039;&#039;vector_pare&#039;&#039;&#039; și fiecare număr impar în lista &#039;&#039;&#039;vector_impare&#039;&#039;&#039;. Dacă fiecare listă are cel puțin un element, funcția afișează &#039;&#039;&#039;Datele sunt corecte.&#039;&#039;&#039; și returnează lista &#039;&#039;&#039;vector_pare&#039;&#039;&#039; și lista &#039;&#039;&#039;vector_impare&#039;&#039;&#039;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Funcția &#039;&#039;&#039;pareimpare&#039;&#039;&#039; primește ca parametrii cele două liste cu numere pare și impare, respectiv. Funcția sortează cele două liste și adaugă 0 la lista &#039;&#039;&#039;vector_impare&#039;&#039;&#039; și 1 la lista &#039;&#039;&#039;vector_pare&#039;&#039;&#039; pentru a avea grijă și de cazul în care toate numerele sunt pare sau impare. Apoi, funcția parcurge lista &#039;&#039;&#039;vector_impare&#039;&#039;&#039; și scrie în fișier toate numerele distincte, cu excepția ultimului element care este întotdeauna 0. Funcția face același lucru și pentru lista &#039;&#039;&#039;vector_pare&#039;&#039;&#039;, cu excepția ultimului element care este întotdeauna 1.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Csula Beatrice</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0276_-_PareImpare&amp;diff=1833&amp;oldid=prev</id>
		<title>Csula Beatrice: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/276/pareimpare -PareImpare] ---- == Cerinţa == Se dau cel mult &#039;&#039;&#039;100.000&#039;&#039;&#039; de numere naturale, cu cel mult 2 cifre fiecare. Afişaţi în ordine strict crescătoare valorile impare care se regăsesc printre valorile date, şi în ordine strict descrescătoare valorile pare care se regăsesc printre valorile date. == Date de intrare == Fişierul de intrare &#039;&#039;&#039;pareimpare.in&#039;&#039;&#039; conţine cel mult &#039;&#039;&#039;100.000&#039;&#039;&#039; de numere naturale, cu cel m...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0276_-_PareImpare&amp;diff=1833&amp;oldid=prev"/>
		<updated>2023-03-26T15:34:15Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/276/pareimpare -PareImpare] ---- == Cerinţa == Se dau cel mult &amp;#039;&amp;#039;&amp;#039;100.000&amp;#039;&amp;#039;&amp;#039; de numere naturale, cu cel mult 2 cifre fiecare. Afişaţi în ordine strict crescătoare valorile impare care se regăsesc printre valorile date, şi în ordine strict descrescătoare valorile pare care se regăsesc printre valorile date. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;pareimpare.in&amp;#039;&amp;#039;&amp;#039; conţine cel mult &amp;#039;&amp;#039;&amp;#039;100.000&amp;#039;&amp;#039;&amp;#039; de numere naturale, cu cel m...&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/276/pareimpare -PareImpare]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau cel mult &amp;#039;&amp;#039;&amp;#039;100.000&amp;#039;&amp;#039;&amp;#039; de numere naturale, cu cel mult 2 cifre fiecare. Afişaţi în ordine strict crescătoare valorile impare care se regăsesc printre valorile date, şi în ordine strict descrescătoare valorile pare care se regăsesc printre valorile date.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;pareimpare.in&amp;#039;&amp;#039;&amp;#039; conţine cel mult &amp;#039;&amp;#039;&amp;#039;100.000&amp;#039;&amp;#039;&amp;#039; de numere naturale, cu cel mult 2 cifre fiecare, dispuse pe mai multe linii şi separate prin spaţii.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&amp;quot;Datele sunt corecte.&amp;quot;, iar apoi in fişierul de ieşire &amp;#039;&amp;#039;&amp;#039;pareimpare.out&amp;#039;&amp;#039;&amp;#039; va conţine pe prima linie şirul valorilor impare, separate printr-un spaţiu, iar pe a doua linie şirul valorilor pare, separate printr-un spaţiu. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* în fişierul de intrare se află cel puţin un număr par şi cel puţin un număr impar&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; pareimpare.in&lt;br /&gt;
: 75 12 3 3 18 75 1 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt corecte.&lt;br /&gt;
; pareimpare.out&lt;br /&gt;
: 1 3 75&lt;br /&gt;
: 18 12 &lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; pareimpare.in&lt;br /&gt;
: 10 11 42 45 79&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt corecte.&lt;br /&gt;
; pareimpare.out&lt;br /&gt;
: 11 45 79&lt;br /&gt;
: 42 10&lt;br /&gt;
===Exemplul 3===&lt;br /&gt;
; pareimpare.in&lt;br /&gt;
: 75 77 71 99 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor 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;
#0276 PareImpare&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def pareimpare(vector_pare, vector_impare):&lt;br /&gt;
    f = open(&amp;quot;pareimpare.out&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
    vector_impare.sort()&lt;br /&gt;
    vector_pare.sort(reverse=True)&lt;br /&gt;
    vector_impare.append(0)&lt;br /&gt;
    vector_pare.append(1)&lt;br /&gt;
    for i in range(len(vector_impare) - 1):&lt;br /&gt;
        if vector_impare[i] != vector_impare[i + 1]:&lt;br /&gt;
            f.write(str(vector_impare[i]))&lt;br /&gt;
            f.write(&amp;quot; &amp;quot;)&lt;br /&gt;
    f.write(&amp;quot;\n&amp;quot;)&lt;br /&gt;
    for i in range(len(vector_pare) - 1):&lt;br /&gt;
        if vector_impare[i] != vector_pare[i + 1]:&lt;br /&gt;
            f.write(str(vector_pare[i]))&lt;br /&gt;
            f.write(&amp;quot; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def conform_restrictiilor():&lt;br /&gt;
    vector = list()&lt;br /&gt;
    vector_pare = list()&lt;br /&gt;
    vector_impare = list()&lt;br /&gt;
    with open(&amp;#039;pareimpare.in&amp;#039;) as f:&lt;br /&gt;
        lines = f.readlines()&lt;br /&gt;
        for line in lines:&lt;br /&gt;
            for c in line.split():&lt;br /&gt;
                if c.isdigit() == True:&lt;br /&gt;
                    vector.append(int(c))&lt;br /&gt;
    if len(vector) &amp;gt; 100000:&lt;br /&gt;
        print(&amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;lt; 0 or x &amp;gt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
        elif x % 2 == 0:&lt;br /&gt;
            vector_pare.append(x)&lt;br /&gt;
        else:&lt;br /&gt;
            vector_impare.append(x)&lt;br /&gt;
    if len(vector_pare) == 0 or len(vector_impare) == 0:&lt;br /&gt;
        print(&amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
    return vector_pare, vector_impare&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    vector_pare, vector_impare = conform_restrictiilor()&lt;br /&gt;
    pareimpare(vector_pare, vector_impare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csula Beatrice</name></author>
	</entry>
</feed>