<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Csatari+M%C4%83lina</id>
	<title>Bitnami MediaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Csatari+M%C4%83lina"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/wiki/Special:Contributions/Csatari_M%C4%83lina"/>
	<updated>2026-05-01T02:41:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=Gazeta_Matematic%C4%83&amp;diff=7162</id>
		<title>Gazeta Matematică</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=Gazeta_Matematic%C4%83&amp;diff=7162"/>
		<updated>2023-11-08T09:08:07Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Această pagină conține o listă cu numerele revistei &#039;&#039;[https://gmb.ssmr.ro/ Gazeta Matematică]&#039;&#039; care conțin articole/probleme cu autori membri ai [https://ssmr.cunbm.utcluj.ro/ Filialei Maramureș] a [https://ssmr.ro/ Societății de Științe Matematice din România].&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Anul&lt;br /&gt;
!Numărul &lt;br /&gt;
!Numărul problemei&lt;br /&gt;
!Clasa&lt;br /&gt;
!Domeniu&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot; |2022&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|1 &lt;br /&gt;
| [[28247]]&lt;br /&gt;
|11&lt;br /&gt;
|Matrice&lt;br /&gt;
|-&lt;br /&gt;
| [[28250]]&lt;br /&gt;
|12&lt;br /&gt;
|integrala Riemann&lt;br /&gt;
limită&lt;br /&gt;
|-&lt;br /&gt;
|4 - [[Gazeta Matematică nr 4 2022|link]]&lt;br /&gt;
| [[28315]]&lt;br /&gt;
|10&lt;br /&gt;
|numere complexe&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|11 &lt;br /&gt;
| [[E:16407]]&lt;br /&gt;
|5&lt;br /&gt;
|cub perfect&lt;br /&gt;
|-&lt;br /&gt;
| [[28450]]&lt;br /&gt;
|&lt;br /&gt;
|progresii aritmetice&lt;br /&gt;
|-&lt;br /&gt;
|rowspan = &amp;quot;4&amp;quot; |2021&lt;br /&gt;
|rowspan= &amp;quot;1&amp;quot; | 12 - [[28208|link]]&lt;br /&gt;
|[[28208]]&lt;br /&gt;
|9&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rowspan = &amp;quot;3&amp;quot; |678 - [[Gazeta Matematică nr 678 2021|link]]&lt;br /&gt;
|[[E:15990]]&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[E:15991]]&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[E:15992]]&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; |2018&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; |4 - [[Gazeta Matematică nr 4 2018|link]]&lt;br /&gt;
| [[S:E18.128]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[S:E18.131]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[S:E18.131]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; |2015&lt;br /&gt;
|1 - [[Gazeta Matematică nr 1 2015|link]]&lt;br /&gt;
|[[27020]]&lt;br /&gt;
|10&lt;br /&gt;
|coeficienți binomiali&lt;br /&gt;
|-&lt;br /&gt;
|2 - [[Gazeta Matematică nr 2 2015|link]]&lt;br /&gt;
|[[27036]]&lt;br /&gt;
|11&lt;br /&gt;
|ecuații funcționale&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| 2011&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|7-8-9 - [[Gazeta Matematică nr 789 2011|link]]&lt;br /&gt;
|[[E:14223]]&lt;br /&gt;
|7&lt;br /&gt;
|rezolvarea triunghiului&lt;br /&gt;
|-&lt;br /&gt;
|[[E:14228]]&lt;br /&gt;
|7&lt;br /&gt;
|radicali&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28208&amp;diff=7161</id>
		<title>28208</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28208&amp;diff=7161"/>
		<updated>2023-11-08T08:45:14Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: Pagină nouă: &amp;#039;&amp;#039;&amp;#039;28208 (Dana Heuberger, Baia Mare)&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;Considerăm pentagonul convex ABCDE înscris într-un cerc și &amp;lt;math&amp;gt;H_1, H_2, H_3, H_4, H_5&amp;lt;/math&amp;gt; ortocentrele triunghiurilor ACD, BDE, CEA, DAB, respectiv EBC. Arătați că, dacă &amp;lt;math&amp;gt;H_1H_2 \parallel AB&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H_2H_3 \parallel BC&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H_3H_4 \parallel CD&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;H_4H_5 \parallel DE&amp;lt;/math&amp;gt;, atunci ABCDE și &amp;lt;math&amp;gt;H_1H_2H_3H_4H_5&amp;lt;/math&amp;gt; sunt pentagoane regulate.&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;Soluție:&amp;#039;&amp;#039;&amp;#039; Fie &amp;#039;&amp;#039;O&amp;#039;&amp;#039; centrul cercu...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28208 (Dana Heuberger, Baia Mare)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Considerăm pentagonul convex ABCDE înscris într-un cerc și &amp;lt;math&amp;gt;H_1, H_2, H_3, H_4, H_5&amp;lt;/math&amp;gt; ortocentrele triunghiurilor ACD, BDE, CEA, DAB, respectiv EBC. Arătați că, dacă &amp;lt;math&amp;gt;H_1H_2 \parallel AB&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H_2H_3 \parallel BC&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;H_3H_4 \parallel CD&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;H_4H_5 \parallel DE&amp;lt;/math&amp;gt;, atunci ABCDE și &amp;lt;math&amp;gt;H_1H_2H_3H_4H_5&amp;lt;/math&amp;gt; sunt pentagoane regulate.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039;&lt;br /&gt;
Fie &#039;&#039;O&#039;&#039; centrul cercului circumscris pentagonului &#039;&#039;ABCDE&#039;&#039;. Folosind relația lui Sylvester, obținem &amp;lt;math&amp;gt;\overrightarrow{O H_1}=\overrightarrow{O A}+\overrightarrow{O C}+\overrightarrow{O D}&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;\overrightarrow{O H_2}=\overrightarrow{O B}+\overrightarrow{O D}+\overrightarrow{O E}.&amp;lt;/math&amp;gt; Avem &amp;lt;math&amp;gt;\overrightarrow{H_1 H_2}=\overrightarrow{O H_2}-\overrightarrow{O H_1}=\overrightarrow{A B}+\overrightarrow{C E}&amp;lt;/math&amp;gt; și, cum &amp;lt;math&amp;gt;H_1H_2 \parallel AB,&amp;lt;/math&amp;gt; rezultă că &amp;lt;math&amp;gt;AB \parallel CE&amp;lt;/math&amp;gt;, deci &amp;lt;math&amp;gt;AE=BC&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;H_1H_2 = |CE-AB|.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analog, din &amp;lt;math&amp;gt;H_2H_3 \parallel BC,&amp;lt;/math&amp;gt; obținem &amp;lt;math&amp;gt;AB=CD&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;H_2H_3=|AD-BC|&amp;lt;/math&amp;gt;, din &amp;lt;math&amp;gt;H_3H_4 \parallel CD&amp;lt;/math&amp;gt; deducem că &amp;lt;math&amp;gt;BC=DE&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;H_3H_4=|BE-CD|&amp;lt;/math&amp;gt;, iar din &amp;lt;math&amp;gt;H_4H_5 \parallel DE&amp;lt;/math&amp;gt; rezultă că &amp;lt;math&amp;gt;CD=AE&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;H_4H_5=|AC-DE|.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avem &amp;lt;math&amp;gt;AB=BC=CD=DE=EA&amp;lt;/math&amp;gt;, prin urmare și arcele de cerc subîntinse de laturile pentagonului sunt congruente, deci și unghiurile lui ABCDE sunt congruente. În concluzie, pentagonul ABCDE este regulat.&lt;br /&gt;
&lt;br /&gt;
Din &amp;lt;math&amp;gt;AE \parallel BD&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;\overrightarrow{H_1 H_5}=\overrightarrow{A E}+\overrightarrow{D B}&amp;lt;/math&amp;gt;, obținem &amp;lt;math&amp;gt;H_1H_5=DB-AE&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;H_5H_1 \parallel AE.&amp;lt;/math&amp;gt; Deducem că &amp;lt;math&amp;gt;H_1H_2=H_2H_3=H_3H_4=H_4H_5=H_5H_1&amp;lt;/math&amp;gt; și că unghiurile lui &amp;lt;math&amp;gt;H_1H_2H_3H_4H_5&amp;lt;/math&amp;gt; sunt congruente cu cele ale pentagonului regulat ABCDE, deci &amp;lt;math&amp;gt;H_1H_2H_3H_4H_5&amp;lt;/math&amp;gt; este un pentagon regulat.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0270_-_Unice1&amp;diff=6811</id>
		<title>0270 - Unice1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0270_-_Unice1&amp;diff=6811"/>
		<updated>2023-06-02T10:45:44Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/270/unice1 0270 - Unice1] ---- == Cerinţa == Se dau &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere întregi. Determinaţi câte dintre numerele date apar o singură dată. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;unice1.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numărul n; urmează n numere întregi, dispuse pe mai multe linii, separate prin spaţii. == Date de ieșire ==  Dacă datele din fișier sunt introduse corect, pe ecran se va afișa:  &amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele din fișier sunt int...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/270/unice1 0270 - Unice1]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere întregi. Determinaţi câte dintre numerele date apar o singură dată.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;unice1.in&#039;&#039;&#039; conţine pe prima linie numărul n; urmează n numere întregi, dispuse pe mai multe linii, separate prin spaţii.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele din fișier sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele din fișier sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire unice1.out va conţine pe prima linie C, numărul cerut. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele din fișier nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; valori citite sunt cuprinse între &#039;&#039;&#039;-1.000.000&#039;&#039;&#039; şi &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; unice1.in&lt;br /&gt;
: 7&lt;br /&gt;
: 4 -2 3 4&lt;br /&gt;
: 5 -2 4&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele din fișier sunt introduse corect.&lt;br /&gt;
; unice1.out&lt;br /&gt;
: 2&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; pozitie.in&lt;br /&gt;
: 7&lt;br /&gt;
: 4 -21000000 3 4&lt;br /&gt;
: 5 -2 4&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele din fișier nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0270&lt;br /&gt;
&lt;br /&gt;
def numere_unice():&lt;br /&gt;
    frecvente = [0] * 2000001  # Inițializăm un vector de frecvențe cu valori de 0&lt;br /&gt;
&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        index = numar + 1000000  # Folosim un offset pentru a nu avea numere negative în vector&lt;br /&gt;
        frecvente[index] += 1&lt;br /&gt;
&lt;br /&gt;
    numere_unice = 0&lt;br /&gt;
    for frecventa in frecvente:&lt;br /&gt;
        if frecventa == 1:&lt;br /&gt;
            numere_unice += 1&lt;br /&gt;
&lt;br /&gt;
    with open(&#039;unice1.out&#039;, &#039;w&#039;) as f:&lt;br /&gt;
        f.write(str(numere_unice))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(numere, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000:&lt;br /&gt;
        print(&amp;quot;Datele din fișier nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        if numar &amp;lt; -1000000 or numar &amp;gt; 1000000:&lt;br /&gt;
            print(&amp;quot;Datele din fișier nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    print(&amp;quot;Datele din fișier sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;unice1.in&#039;, &#039;r&#039;) as f:&lt;br /&gt;
        n = int(f.readline())&lt;br /&gt;
        numere = []&lt;br /&gt;
        for _ in range(n):&lt;br /&gt;
            numere.extend(map(int, f.readline().split()))&lt;br /&gt;
    citire_conform_restrictiilor(numere, n)&lt;br /&gt;
    numere_unice()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține &#039;&#039;&#039;trei secțiuni&#039;&#039;&#039;:&amp;lt;br&amp;gt;1. Secțiunea &#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;: În această secțiune, codul este responsabil pentru citirea datelor din fișier (with open(&#039;unice1.in&#039;, &#039;r&#039;) as f:) și apelarea funcțiilor citire_conform_restrictiilor() și numere_unice().&amp;lt;br&amp;gt;2. Secțiunea &#039;&#039;&#039;citire_conform_restrictiilor&#039;&#039;&#039;: Această secțiune definește funcția citire_conform_restrictiilor, care primește lista numere și numărul n ca argumente. Funcția verifică restricțiile impuse în enunțul problemei: că n trebuie să fie între 1 și 1000, iar numerele trebuie să fie cuprinse între -1.000.000 și 1.000.000. Dacă una dintre restricții nu este respectată, se afișează un mesaj de eroare și se utilizează exit() pentru a opri execuția programului. Altfel, afișează mesajul de confirmare că datele din fișier sunt corecte și se continuă programul.&amp;lt;br&amp;gt;3. Secțiunea &#039;&#039;&#039;numere_unice&#039;&#039;&#039;: Această secțiune definește &#039;&#039;&#039;funcția numere_unice&#039;&#039;&#039;, care implementează logica pentru determinarea numărului de numere unice. În această funcție, se inițializează un vector de frecvențe cu valori de 0, se parcurge lista numere și se incrementează frecvența corespunzătoare fiecărui număr. Apoi, se numără câte elemente au o frecvență de 1 și se scrie rezultatul (din variabila numere_unice) în fișierul de ieșire &amp;quot;unice1.out&amp;quot;, astfel rezolvând problema conform cerințelor impuse!&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0551_-_Elevi&amp;diff=4513</id>
		<title>0551 - Elevi</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0551_-_Elevi&amp;diff=4513"/>
		<updated>2023-04-26T12:04:13Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: https://www.pbinfo.ro/probleme/551/elevi 0551- Elevi]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
La liceul nostru sunt &#039;&#039;&#039;m&#039;&#039;&#039; clase, fiecare având &#039;&#039;&#039;n&#039;&#039;&#039; elevi. Pentru fiecare elev se cunoaşte talentul artistic, exprimat printr-un număr natural. Să se determine cea mai mare valoare pe care o are talentul artistic al elevilor, notată cu &#039;&#039;&#039;MAX&#039;&#039;&#039; şi numărul &#039;&#039;&#039;CNT&#039;&#039;&#039; de clase din liceu în care există elevi care au talent maxim.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;m n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;m&#039;&#039;&#039; şiruri cu câte &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, reprezentând talentul fiecărui elev din fiecare clasă.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa numerele MAX CNT, separate prin exact un spaţiu, cu semnificaţia precizată. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;m&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;100&#039;&#039;&#039;&lt;br /&gt;
* talentul artistic al unui elev este un număr natural mai mic decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5 4&lt;br /&gt;
: 1 5 3 5 &lt;br /&gt;
: 4 4 6 1 &lt;br /&gt;
: 6 3 6 2 &lt;br /&gt;
: 1 4 1 4 &lt;br /&gt;
: 6 5 6 2 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 6 3&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: -1 12&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0551&lt;br /&gt;
&lt;br /&gt;
def citire_cu_restrictii_m_n(m, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if m &amp;lt; 1 or m &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def verificare_vectori_conform_restrictiilor(vector):&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;gt; 1000000 or element &amp;lt; 1:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def prelucrare_max_cnt(m, n):&lt;br /&gt;
    vector = [0] * 1001&lt;br /&gt;
    MAX, CNT = -1, 0&lt;br /&gt;
    for k in range(1, n+1):&lt;br /&gt;
        vector = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
        cmaxim = vector[0]&lt;br /&gt;
&lt;br /&gt;
        for i in range(m):&lt;br /&gt;
            if vector[i] &amp;gt; cmaxim:&lt;br /&gt;
                cmaxim = vector[i]&lt;br /&gt;
&lt;br /&gt;
        if cmaxim &amp;gt; MAX:&lt;br /&gt;
            MAX = cmaxim&lt;br /&gt;
            CNT = 1&lt;br /&gt;
        elif cmaxim == MAX:&lt;br /&gt;
            CNT += 1&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
    print(MAX, CNT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n, m = map(int, input().split())&lt;br /&gt;
    citire_cu_restrictii_m_n(m, n)&lt;br /&gt;
    prelucrare_max_cnt(m, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
    Acest cod definește trei funcții și o secțiune &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;(linia 40) care apelează aceste funcții după citirea numerelor n și m cu ajutorul comenzii de citire input() și cea de conversie în număr int() (linia 41).&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_cu_restrictii_m_n(m, n)&#039;&#039;&#039; primește doi parametri, m și n, și verifică dacă aceștia îndeplinesc restricțiile impuse. Dacă n nu este între 1 și 1000 sau m nu este între 1 și 100, se afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și se încheie programul prin apelul funcției exit().&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;verificare_vectori_conform_restrictiilor(vector)&#039;&#039;&#039; primește un vector de numere și verifică dacă acestea îndeplinesc restricțiile impuse. Dacă un element din vector este mai mare decât 1000000 sau mai mic decât 1, se afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și se încheie programul prin apelul funcției exit().&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;prelucrare_max_cnt(m, n)&#039;&#039;&#039; primește doi parametri, m și n, și efectuează o prelucrare de date. Se creează un vector gol de lungime 1001 cu vector = [0] * 1001. Apoi se citește n linii de input, fiecare conținând m numere separate prin spațiu, și se stochează în vector. Pentru fiecare linie, se găsește cel mai mare element din acea linie și se compară cu maximul global (MAX). Dacă acesta este mai mare decât maximul global curent, se actualizează maximul global și se resetează contorul (CNT) la 1. Dacă este egal cu maximul global curent, se incrementează contorul. La final, se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și pe un rând nou MAX și CNT, conform problemei.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0189_-_NumarMunte&amp;diff=4512</id>
		<title>0189 - NumarMunte</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0189_-_NumarMunte&amp;diff=4512"/>
		<updated>2023-04-26T11:53:51Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/189/numarmunte 0189- NumarMunte]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Determinați, pentru fiecare dintre ele, dacă este de tip “munte”. Un număr este de tip “munte” dacă cifrele sale formează inițial un șir strict crescător, apoi un șir strict descrescător.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou pentru fiecare dintre cele n numere citite, pe câte o linie a ecranului &#039;&#039;&#039;valoarea 1&#039;&#039;&#039;, dacă numărul corespunzător este de tip “munte”, respectiv &#039;&#039;&#039;valoarea 0&#039;&#039;&#039; în caz contrar. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;10&#039;&#039;&#039;&lt;br /&gt;
* cele n numere vor fi cuprinse între &#039;&#039;&#039;100&#039;&#039;&#039; și &#039;&#039;&#039;2.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 4&lt;br /&gt;
: 15965 156 121 753&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 1&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 0&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3&lt;br /&gt;
: 123 3 145&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0189&lt;br /&gt;
&lt;br /&gt;
def afisare_if_munte(vector):&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if verificare_munte(element):&lt;br /&gt;
            print(1)&lt;br /&gt;
        if not verificare_munte(element):&lt;br /&gt;
            print(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def verificare_munte(numar):&lt;br /&gt;
    nr_cifre = len(str(numar))&lt;br /&gt;
    cifre = []&lt;br /&gt;
    while numar:&lt;br /&gt;
        cifre.append(numar % 10)&lt;br /&gt;
        numar //= 10&lt;br /&gt;
    cifre.reverse()&lt;br /&gt;
    poz = 0&lt;br /&gt;
    while poz &amp;lt; nr_cifre - 1 and cifre[poz] &amp;lt; cifre[poz + 1]:&lt;br /&gt;
        poz += 1&lt;br /&gt;
    if poz == 0 or poz == nr_cifre - 1:&lt;br /&gt;
        return False&lt;br /&gt;
    while poz &amp;lt; nr_cifre - 1 and cifre[poz] &amp;gt; cifre[poz + 1]:&lt;br /&gt;
        poz += 1&lt;br /&gt;
    return poz == nr_cifre - 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 10:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;lt; 100 or x &amp;gt; 2000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    afisare_if_munte(vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
    Acest cod implementează o soluție pentru problema de a determina dacă un număr dat este de tip &amp;quot;munte&amp;quot;. Mai exact, în secțiunea &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; se citește de la tastatură un număr natural n, urmat de n numere naturale pe care le punem în vectorul &amp;quot;vector&amp;quot;, apoi apelăm cele două funcții definite mai sus citire_conform_restrictiilor(vector, n) și afisare_if_munte(vector).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;verificare_munte(num)&#039;&#039;&#039; primește ca argument un număr natural num și returnează True dacă acesta este de tip &amp;quot;munte&amp;quot; și False în caz contrar. Algoritmul folosit în această funcție constă în parcurgerea cifrelor numărului, în ordine inversă față de poziția lor, și verificarea dacă există o poziție în care cifrele cresc și apoi scad. Dacă se găsește o astfel de poziție, se returnează True. Altfel, se returnează False.&amp;lt;br&amp;gt; &lt;br /&gt;
  Funcția &#039;&#039;&#039;afisare_if_munte(vector)&#039;&#039;&#039; primește ca argument un vector de numere naturale și afișează rezultatul verificării pentru fiecare element din vector, folosind funcția &#039;&#039;&#039;verificare_munte(num)&#039;&#039;&#039; (dacă rezultatul returnat de funcție este diferit de 0 afișăm 1, adică este munte, iar dacă rezultatul returnat de funcție este 0 afișăm 0, adică nu este munte).&amp;lt;br&amp;gt; &lt;br /&gt;
  Funcția &#039;&#039;&#039;citire_conform_restrictiilor()&#039;&#039;&#039; verifică dacă datele introduse corespund restricțiilor impuse de problemă (n trebuie să fie între 1 și 10, iar numerele din vector trebuie să fie între 100 și 2000000000, n este lungimea vectorului &amp;quot;vector&amp;quot;). Dacă datele sunt introduse corect se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se poate continua programul. Dacă nu, programul afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și se oprește cu ajutorul comenzii exit().&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1893_-_MerryChristmas&amp;diff=4511</id>
		<title>1893 - MerryChristmas</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1893_-_MerryChristmas&amp;diff=4511"/>
		<updated>2023-04-26T11:45:39Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1893/merrychristmas 1893- MerryChristmas]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Moş Crăciun s-a dus la Polul Nord Shopping City să cumpere &#039;&#039;&#039;n&#039;&#039;&#039; cadouri pentru copiii din întreaga lume. Fiecare cadou avea un cod de bare pentru identificarea produsului, corespunzător unui număr format din nouă cifre, prima cifră fiind nenulă. La plecare şi-a amintit că-i promisese unui copil isteţ un cadou special, care să fie diferit de toate celelalte. Moş Crăciun vă roagă să găsiţi un cadou care să aibă codul de bare diferit de toate celelalte.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale de nouă cifre, separate prin spații, reprezentând codurile cadourilor cumpărate.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa codul unui cadou special, care este diferit de codurile cadourilor cumpărate. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;500.000&#039;&#039;&#039;&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor avea câte nouă cifre&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 4&lt;br /&gt;
: 123456789 987654321 112345567 200000001&lt;br /&gt;
; Ieșire (orice variantă de cod e corectă atât timp cât e diferită de celelalte din vector)&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 286867248&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 4&lt;br /&gt;
: 12 2 3 4&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 1893&lt;br /&gt;
&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def generare_cod():&lt;br /&gt;
    nr_pt_produs1 = random.randint(10000, 31622)&lt;br /&gt;
    nr_pt_produs2 = random.randint(10000, 31622)&lt;br /&gt;
    cod_generat_random_de_9_cifre = nr_pt_produs1 * nr_pt_produs2&lt;br /&gt;
    return cod_generat_random_de_9_cifre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def verificare_cod_unic(coduri):&lt;br /&gt;
    cod_generat_random_de_9_cifre = generare_cod()&lt;br /&gt;
    if cod_generat_random_de_9_cifre not in coduri:&lt;br /&gt;
        print(cod_generat_random_de_9_cifre)&lt;br /&gt;
    else:&lt;br /&gt;
        verificare_cod_unic(coduri)&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, coduri):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 500000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in coduri:&lt;br /&gt;
        if x &amp;lt; 100000000 or x &amp;gt; 999999999:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(coduri):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    coduri = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, coduri)&lt;br /&gt;
    verificare_cod_unic(coduri)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
    În secțiunea &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;, programul citește numărul n și cele n coduri pe care le vom pune în vectorul &amp;quot;coduri&amp;quot;, apoi apelează funcția citire_conform_restrictiilor(n, coduri) și funcția verificare_cod_unic(coduri) pentru a genera un cod unic de bare și a-l afișa pe ecran.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor()&#039;&#039;&#039; primește ca parametrii numărul n și un vector &amp;quot;coduri&amp;quot;. Funcția verifică dacă datele de intrare corespund cerințelor: n trebuie să fie între 1 și 500.000 inclusiv, fiecare cod trebuie să fie un număr întreg de nouă cifre și numărul de coduri introduse trebuie să fie egal cu n. Dacă oricare dintre restricții este încălcată, se va afișa &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și se va încheia programul cu ajutorul comenzii exit(). Dacă datele respectă condițiile, se va afișa &amp;quot;Datele sunt introduse corect.&amp;quot; și se poate continua programul.&lt;br /&gt;
    Funcția &#039;&#039;&#039;generare_cod()&#039;&#039;&#039; generează un cod unic de bare, folosind funcția randint() din modulul Python random pentru a genera două numere întregi aleatoare între 10.000 și 31.622 inclusiv (variabilele nr_pt_produs1, nr_pt_produs2). Produsul celor două numere întregi nr_pt_produs1 * nr_pt_produs2 este mereu un număr cu nouă cifre, care reprezintă codul de bare și este calculat în variabila cod_generat_random_de_9_cifre, care va fi returnat de această funcție.&lt;br /&gt;
   Funcția &#039;&#039;&#039;verificare_cod_unic(coduri)&#039;&#039;&#039; verifică dacă un cod generat de funcția generare_cod() este unic în lista dată ca parametru (printr-un if ... not in ..., care verifică dacă numărul nu este în listă). Dacă codul generat este în listă, funcția generează un nou cod unic prin apelarea recursivă a sa. Dacă codul generat este unic, acesta este afișat pe ecran.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0383_-_inlocuireK&amp;diff=4510</id>
		<title>0383 - inlocuireK</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0383_-_inlocuireK&amp;diff=4510"/>
		<updated>2023-04-26T11:34:40Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/383/inlocuirek 0383- inlocuireK]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural nenul &#039;&#039;&#039;k&#039;&#039;&#039; și vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se înlocuiască fiecare element cu multiplul lui &#039;&#039;&#039;k&#039;&#039;&#039; cel mai apropiat de el și să se afișeze elementele astfel obținute în ordine inversă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;k&#039;&#039;&#039; și &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa elementele vectorului, după înlocuire, în ordine inversă, separate prin exact un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;200&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;k&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;100&#039;&#039;&#039;&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
* dacă pentru un element al vectorului există mai multi cei mai apropiați multipli ai lui k, elementul va fi înlocui cu cel mai mic dintre aceștia&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5 4&lt;br /&gt;
: 17 14 24 25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 25 25 15 15&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 101 2&lt;br /&gt;
: 1 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0383&lt;br /&gt;
&lt;br /&gt;
def inloc_elem_cu_multiplu_k_cel_mai_apropiat(vector, n, k):&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        multiplu_k_inferior = vector[i] // k * k&lt;br /&gt;
        multiplu_k_superior = multiplu_k_inferior + k&lt;br /&gt;
        if abs(vector[i] - multiplu_k_inferior) &amp;lt;= abs(multiplu_k_superior - vector[i]):&lt;br /&gt;
            vector[i] = multiplu_k_inferior&lt;br /&gt;
        else:&lt;br /&gt;
            vector[i] = multiplu_k_superior&lt;br /&gt;
&lt;br /&gt;
    for i in range(n-1, -1, -1):&lt;br /&gt;
        print(vector[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(k, n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200 or k &amp;lt; 1 or k &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;lt; 1 or x &amp;gt; 1000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    k, n = map(int, input().split())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(k, n, vector)&lt;br /&gt;
    inloc_elem_cu_multiplu_k_cel_mai_apropiat(vector, n, k)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
   Programul de mai sus conține două funcții, funcția inloc_elem_cu_multiplu_k_cel_mai_apropiat(vector, n, k) și funcția citire_conform_restrictiilor(k, n, vector), care sunt apelate în secțiunea &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 30) după citirea numerelor k și n, respectiv cele n numere pe care le punem în vectorul &amp;quot;vector&amp;quot; (liniile 31, 32).&lt;br /&gt;
   Funcția &#039;&#039;&#039;citire_conform_restrictiilor&#039;&#039;&#039; verifică dacă datele de intrare respectă restricțiile impuse în enunțul problemei (n este cuprins între 1 și 200, k este cuprins între 1 și 200, elementele vectorului sunt cuprinse între 1 și 1000000, n este lungimea vectorului &amp;quot;vector). Dacă datele respectă nu respectă oricare dintre restricții se afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și oprește programul prin apelul funcției exit(), iar dacă datele corespund restricțiilor se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se poate continua programul. &lt;br /&gt;
   Funcția &#039;&#039;&#039;inloc_elem_cu_multiplu_k_cel_mai_apropiat&#039;&#039;&#039; primește ca parametrii vectorul &amp;quot;vector&amp;quot; și numărul de elemente n din vector, precum și numărul natural k și efectuează următoarele operații:&amp;lt;br&amp;gt;-&amp;gt; pentru fiecare element din vector, găsește cel mai apropiat multiplu al lui k, prin împărțirea elementului la k și înmulțirea rezultatului cu k;&amp;lt;br&amp;gt;-&amp;gt; determină dacă cel mai apropiat multiplu este a sau b, unde b este multiplul lui k imediat mai mare decât a;&amp;lt;br&amp;gt;-&amp;gt; înlocuiește elementul din vector cu cel mai apropiat multiplu găsit;&amp;lt;br&amp;gt;-&amp;gt; afișează elementele vectorului, după înlocuire, în ordine inversă.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0383_-_inlocuireK&amp;diff=4509</id>
		<title>0383 - inlocuireK</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0383_-_inlocuireK&amp;diff=4509"/>
		<updated>2023-04-26T11:34:22Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/383/inlocuirek 0383- inlocuireK]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural nenul &#039;&#039;&#039;k&#039;&#039;&#039; și vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se înlocuiască fiecare element cu multiplul lui &#039;&#039;&#039;k&#039;&#039;&#039; cel mai apropiat de el și să se afișeze elementele astfel obținute în ordine inversă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;k&#039;&#039;&#039; și &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa elementele vectorului, după înlocuire, în ordine inversă, separate prin exact un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;200&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;k&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;100&#039;&#039;&#039;&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
* dacă pentru un element al vectorului există mai multi cei mai apropiați multipli ai lui k, elementul va fi înlocui cu cel mai mic dintre aceștia&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5 4&lt;br /&gt;
: 17 14 24 25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 25 25 15 15&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 101 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0383&lt;br /&gt;
&lt;br /&gt;
def inloc_elem_cu_multiplu_k_cel_mai_apropiat(vector, n, k):&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        multiplu_k_inferior = vector[i] // k * k&lt;br /&gt;
        multiplu_k_superior = multiplu_k_inferior + k&lt;br /&gt;
        if abs(vector[i] - multiplu_k_inferior) &amp;lt;= abs(multiplu_k_superior - vector[i]):&lt;br /&gt;
            vector[i] = multiplu_k_inferior&lt;br /&gt;
        else:&lt;br /&gt;
            vector[i] = multiplu_k_superior&lt;br /&gt;
&lt;br /&gt;
    for i in range(n-1, -1, -1):&lt;br /&gt;
        print(vector[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(k, n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200 or k &amp;lt; 1 or k &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;lt; 1 or x &amp;gt; 1000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    k, n = map(int, input().split())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(k, n, vector)&lt;br /&gt;
    inloc_elem_cu_multiplu_k_cel_mai_apropiat(vector, n, k)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
   Programul de mai sus conține două funcții, funcția inloc_elem_cu_multiplu_k_cel_mai_apropiat(vector, n, k) și funcția citire_conform_restrictiilor(k, n, vector), care sunt apelate în secțiunea &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 30) după citirea numerelor k și n, respectiv cele n numere pe care le punem în vectorul &amp;quot;vector&amp;quot; (liniile 31, 32).&lt;br /&gt;
   Funcția &#039;&#039;&#039;citire_conform_restrictiilor&#039;&#039;&#039; verifică dacă datele de intrare respectă restricțiile impuse în enunțul problemei (n este cuprins între 1 și 200, k este cuprins între 1 și 200, elementele vectorului sunt cuprinse între 1 și 1000000, n este lungimea vectorului &amp;quot;vector). Dacă datele respectă nu respectă oricare dintre restricții se afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și oprește programul prin apelul funcției exit(), iar dacă datele corespund restricțiilor se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se poate continua programul. &lt;br /&gt;
   Funcția &#039;&#039;&#039;inloc_elem_cu_multiplu_k_cel_mai_apropiat&#039;&#039;&#039; primește ca parametrii vectorul &amp;quot;vector&amp;quot; și numărul de elemente n din vector, precum și numărul natural k și efectuează următoarele operații:&amp;lt;br&amp;gt;-&amp;gt; pentru fiecare element din vector, găsește cel mai apropiat multiplu al lui k, prin împărțirea elementului la k și înmulțirea rezultatului cu k;&amp;lt;br&amp;gt;-&amp;gt; determină dacă cel mai apropiat multiplu este a sau b, unde b este multiplul lui k imediat mai mare decât a;&amp;lt;br&amp;gt;-&amp;gt; înlocuiește elementul din vector cu cel mai apropiat multiplu găsit;&amp;lt;br&amp;gt;-&amp;gt; afișează elementele vectorului, după înlocuire, în ordine inversă.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4109_-_afisare22&amp;diff=4508</id>
		<title>4109 - afisare22</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4109_-_afisare22&amp;diff=4508"/>
		<updated>2023-04-26T11:22:39Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4109/afisare22 - afisare22]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector &#039;&#039;&#039;x&#039;&#039;&#039; cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente numere întregi, și un vector &#039;&#039;&#039;y&#039;&#039;&#039; cu &#039;&#039;&#039;m&#039;&#039;&#039; elemente, de asemenea numere întregi. Să se afișeze toate elementele din vectorul &#039;&#039;&#039;x&#039;&#039;&#039; care sunt mai mari decât toate elementele din vectorul &#039;&#039;&#039;y&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi cele &#039;&#039;&#039;n&#039;&#039;&#039; elemente ale vectorului &#039;&#039;&#039;x&#039;&#039;&#039;. Apoi și citește &#039;&#039;&#039;m&#039;&#039;&#039; și cele &#039;&#039;&#039;m&#039;&#039;&#039; elemente ale lui &#039;&#039;&#039;y&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa elementele din vectorul x care sunt mai mari decât toate elementele din vectorul y, sau NU EXISTA dacă vectorul x nu conține astfel de elemente. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n, m&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;10.000&#039;&#039;&#039;&lt;br /&gt;
* elementele celor 2 vectori vor fi din intervalul &#039;&#039;&#039;[-1.000.000.000,1.000.000.000]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
: 91 -6 5 141 2 1 10 &lt;br /&gt;
: 8&lt;br /&gt;
: 8 14 9 14 16 15 4 6 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 91 141&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: -2&lt;br /&gt;
: 1 2 3 4&lt;br /&gt;
: -4&lt;br /&gt;
: 1 2 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 4109&lt;br /&gt;
&lt;br /&gt;
def afis_el_din_vect_x_mai_mari_decat_toate_el_din_y(n, x, m, y):&lt;br /&gt;
    maxim = -1000000000&lt;br /&gt;
    exista = False&lt;br /&gt;
    for i in range(m):&lt;br /&gt;
        if y[i] &amp;gt; maxim:&lt;br /&gt;
            maxim = y[i]&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        adevarat = True&lt;br /&gt;
        if x[i] &amp;lt; maxim:&lt;br /&gt;
            adevarat = False&lt;br /&gt;
        if adevarat:&lt;br /&gt;
            exista = True&lt;br /&gt;
            print(x[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
    if not exista:&lt;br /&gt;
        print(&amp;quot;NU EXISTA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, x, m, y):&lt;br /&gt;
    if n != len(x):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if m != len(y):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.1&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in x:&lt;br /&gt;
        if element &amp;lt; -1000000000 or element &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.3&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    for element in y:&lt;br /&gt;
        if element &amp;lt; -1000000000 or element &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.4&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 10000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.1&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if m &amp;lt; 1 or m &amp;gt; 10000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.1&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    x = list(map(int, input().split()))&lt;br /&gt;
    m = int(input())&lt;br /&gt;
    y = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, x, m, y)&lt;br /&gt;
    afis_el_din_vect_x_mai_mari_decat_toate_el_din_y(n, x, m, y)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
   Acest cod conține două funcții, &#039;&#039;&#039;afis_el_din_vect_x_mai_mari_decat_toate_el_din_y&#039;&#039;&#039; și &#039;&#039;&#039;citire_conform_restrictiilor&#039;&#039;&#039;, care se apelează în interiorul secțiunii &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 44) după citirea numărului n, vectorului x, numărului m, respectiv vectorului x (liniile 45-48, se folosește comanda input() pentru citire și int() pentru convertire în numere).&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;afis_el_din_vect_x_mai_mari_decat_toate_el_din_y&#039;&#039;&#039; primește patru argumente: n, x, m și y (n și m sunt lungimile vectorilor x, respectiv y). Funcția afișează elementele din lista x care sunt mai mari decât toate elementele din lista y. Mai exact, funcția găsește cel mai mare element din lista y, folosind o buclă for și variabila maxim. Apoi, parcurge lista x cu o altă buclă for și verifică dacă fiecare element din x este mai mare decât maxim. Dacă da, funcția afișează elementul. Dacă niciun element din x nu este mai mare decât maxim, funcția afișează mesajul &amp;quot;NU EXISTA&amp;quot;.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor&#039;&#039;&#039; primește datele de intrare și le verifică dacă ele corespund restricțiilor impuse. Funcția primește ca parametrii numărul n, vectorul x, numărul m și vectorul y. Funcția verifică dacă lungimile listelor x și y corespund numerelor n și m, respectiv. De asemenea, funcția verifică dacă toate numerele din x și y sunt întregi între -1000000000 și 1000000000 și dacă n și m sunt întregi între 1 și 10000. Dacă datele introduse corespund acestor restricții, funcția afișează mesajul &amp;quot;Datele sunt introduse corect.&amp;quot;, respectiv mesajul &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; dacă nu respectă oricare dintre restricții.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4104_-_afisare21&amp;diff=4507</id>
		<title>4104 - afisare21</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4104_-_afisare21&amp;diff=4507"/>
		<updated>2023-04-26T11:11:56Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4104/afisare21 - afisare21]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector &#039;&#039;&#039;x&#039;&#039;&#039; cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente numere întregi, și un vector &#039;&#039;&#039;y&#039;&#039;&#039; cu &#039;&#039;&#039;m&#039;&#039;&#039; elemente, de asemenea numere întregi. Să se afișeze toate elementele din vectorul &#039;&#039;&#039;x&#039;&#039;&#039; care sunt mai mici decât toate elementele din vectorul &#039;&#039;&#039;y&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi cele &#039;&#039;&#039;n&#039;&#039;&#039; elemente ale vectorului &#039;&#039;&#039;x&#039;&#039;&#039;. Apoi și citește &#039;&#039;&#039;m&#039;&#039;&#039; și cele &#039;&#039;&#039;m&#039;&#039;&#039; elemente ale lui &#039;&#039;&#039;y&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa elementele din vectorul x care sunt mai mici decât toate elementele din vectorul y, sau NU EXISTA dacă vectorul x nu conține astfel de elemente. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n, m&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;10.000&#039;&#039;&#039;&lt;br /&gt;
* elementele celor 2 vectori vor fi din intervalul &#039;&#039;&#039;[-1.000.000.000,1.000.000.000]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
: 9 -6 5 14 2 1 10 &lt;br /&gt;
: 8&lt;br /&gt;
: 8 14 9 14 16 15 4 6 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: -6 2 1&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
:-2&lt;br /&gt;
: 1 2 3&lt;br /&gt;
: -4&lt;br /&gt;
: 1 2 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 4104&lt;br /&gt;
&lt;br /&gt;
def afis_el_din_vect_x_mai_mici_decat_toate_el_din_y(n, x, m, y):&lt;br /&gt;
    minim = 1000000001&lt;br /&gt;
    exista = False&lt;br /&gt;
    for i in range(m):&lt;br /&gt;
        if y[i] &amp;lt; minim:&lt;br /&gt;
            minim = y[i]&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        advevarat = True&lt;br /&gt;
        if x[i] &amp;gt; minim:&lt;br /&gt;
            advevarat = False&lt;br /&gt;
        if advevarat:&lt;br /&gt;
            exista = True&lt;br /&gt;
            print(x[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
    if not exista:&lt;br /&gt;
        print(&amp;quot;NU EXISTA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, x, m, y):&lt;br /&gt;
    if n != len(x):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if m != len(y):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in x:&lt;br /&gt;
        if element &amp;lt; -1000000000 or element &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    for element in y:&lt;br /&gt;
        if element &amp;lt; -1000000000 or element &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 10000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if m &amp;lt; 1 or m &amp;gt; 10000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    x = list(map(int, input().split()))&lt;br /&gt;
    m = int(input())&lt;br /&gt;
    y = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, x, m, y)&lt;br /&gt;
    afis_el_din_vect_x_mai_mici_decat_toate_el_din_y(n, x, m, y)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
   Acest cod conține două funcții: afis_el_din_vect_x_mai_mici_decat_toate_el_din_y și citire_conform_restrictiilor(), care vor fi apelate în interiorul secțiunii &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 44) după citirea numărului n, vectorului x, m și vectorului y (se folosește comanda input() pentru citire și int() pentru a converti în numere).&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor&#039;&#039;&#039; primește ca parametrii numărul n, vectorul x, numărul m, respectiv vectorul y, și verifică dacă datele introduse respectă restricțiile (n, m să fie lungimile vectorilor x, respectiv y, elementele celor doi vectori să fie cuprinse între -1000000000 și 1000000000, n și m să fie cuprinse între 1 și 10000). Dacă datele nu corespund restricțiilor impuse, afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și se oprește execuția programului prin apelarea funcției exit(), iar dacă ele respectă restricțiile se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se poate continua programul.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;afis_el_din_vect_x_mai_mici_decat_toate_el_din_y&#039;&#039;&#039; primește patru parametri:&amp;lt;br&amp;gt;-&amp;gt; n: numărul de elemente din vectorul x&amp;lt;br&amp;gt;-&amp;gt; x: vectorul x&amp;lt;br&amp;gt;-&amp;gt; m: numărul de elemente din vectorul y&amp;lt;br&amp;gt;-&amp;gt; y: vectorul y&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;afis_el_din_vect_x_mai_mici_decat_toate_el_din_y(n, x, m, y)&#039;&#039;&#039; are următorul comportament:&amp;lt;br&amp;gt;-&amp;gt; Inițializează variabila minim cu o valoare mare și variabila exista cu valoarea False.&amp;lt;br&amp;gt;-&amp;gt; Parcurge vectorul y și găsește valoarea minimă din acesta. Valoarea minimă o stochează în variabila minim.&amp;lt;br&amp;gt;-&amp;gt; Parcurge vectorul x și afișează elementele din acesta care sunt mai mici decât minim. Dacă există cel puțin un astfel de element, variabila exista devine True.&amp;lt;br&amp;gt;-&amp;gt; Dacă nu există niciun element din vectorul x mai mic decât toate elementele din vectorul y, se afișează mesajul &amp;quot;NU EXISTA&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4104_-_afisare21&amp;diff=4506</id>
		<title>4104 - afisare21</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4104_-_afisare21&amp;diff=4506"/>
		<updated>2023-04-26T11:11:08Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4104/afisare21 - afisare21]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector &#039;&#039;&#039;x&#039;&#039;&#039; cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente numere întregi, și un vector &#039;&#039;&#039;y&#039;&#039;&#039; cu &#039;&#039;&#039;m&#039;&#039;&#039; elemente, de asemenea numere întregi. Să se afișeze toate elementele din vectorul &#039;&#039;&#039;x&#039;&#039;&#039; care sunt mai mici decât toate elementele din vectorul &#039;&#039;&#039;y&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi cele &#039;&#039;&#039;n&#039;&#039;&#039; elemente ale vectorului &#039;&#039;&#039;x&#039;&#039;&#039;. Apoi și citește &#039;&#039;&#039;m&#039;&#039;&#039; și cele &#039;&#039;&#039;m&#039;&#039;&#039; elemente ale lui &#039;&#039;&#039;y&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa elementele din vectorul x care sunt mai mici decât toate elementele din vectorul y, sau NU EXISTA dacă vectorul x nu conține astfel de elemente. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n, m&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;10.000&#039;&#039;&#039;&lt;br /&gt;
* elementele celor 2 vectori vor fi din intervalul &#039;&#039;&#039;[-1.000.000.000,1.000.000.000]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
: 9 -6 5 14 2 1 10 &lt;br /&gt;
: 8&lt;br /&gt;
: 8 14 9 14 16 15 4 6 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: -6 2 1&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
: 1 2 3 4&lt;br /&gt;
: 8&lt;br /&gt;
: 1 2 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 4104&lt;br /&gt;
&lt;br /&gt;
def afis_el_din_vect_x_mai_mici_decat_toate_el_din_y(n, x, m, y):&lt;br /&gt;
    minim = 1000000001&lt;br /&gt;
    exista = False&lt;br /&gt;
    for i in range(m):&lt;br /&gt;
        if y[i] &amp;lt; minim:&lt;br /&gt;
            minim = y[i]&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        advevarat = True&lt;br /&gt;
        if x[i] &amp;gt; minim:&lt;br /&gt;
            advevarat = False&lt;br /&gt;
        if advevarat:&lt;br /&gt;
            exista = True&lt;br /&gt;
            print(x[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
    if not exista:&lt;br /&gt;
        print(&amp;quot;NU EXISTA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, x, m, y):&lt;br /&gt;
    if n != len(x):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if m != len(y):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in x:&lt;br /&gt;
        if element &amp;lt; -1000000000 or element &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    for element in y:&lt;br /&gt;
        if element &amp;lt; -1000000000 or element &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 10000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if m &amp;lt; 1 or m &amp;gt; 10000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    x = list(map(int, input().split()))&lt;br /&gt;
    m = int(input())&lt;br /&gt;
    y = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, x, m, y)&lt;br /&gt;
    afis_el_din_vect_x_mai_mici_decat_toate_el_din_y(n, x, m, y)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
   Acest cod conține două funcții: afis_el_din_vect_x_mai_mici_decat_toate_el_din_y și citire_conform_restrictiilor(), care vor fi apelate în interiorul secțiunii &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 44) după citirea numărului n, vectorului x, m și vectorului y (se folosește comanda input() pentru citire și int() pentru a converti în numere).&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor&#039;&#039;&#039; primește ca parametrii numărul n, vectorul x, numărul m, respectiv vectorul y, și verifică dacă datele introduse respectă restricțiile (n, m să fie lungimile vectorilor x, respectiv y, elementele celor doi vectori să fie cuprinse între -1000000000 și 1000000000, n și m să fie cuprinse între 1 și 10000). Dacă datele nu corespund restricțiilor impuse, afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și se oprește execuția programului prin apelarea funcției exit(), iar dacă ele respectă restricțiile se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se poate continua programul.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;afis_el_din_vect_x_mai_mici_decat_toate_el_din_y&#039;&#039;&#039; primește patru parametri:&amp;lt;br&amp;gt;-&amp;gt; n: numărul de elemente din vectorul x&amp;lt;br&amp;gt;-&amp;gt; x: vectorul x&amp;lt;br&amp;gt;-&amp;gt; m: numărul de elemente din vectorul y&amp;lt;br&amp;gt;-&amp;gt; y: vectorul y&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;afis_el_din_vect_x_mai_mici_decat_toate_el_din_y(n, x, m, y)&#039;&#039;&#039; are următorul comportament:&amp;lt;br&amp;gt;-&amp;gt; Inițializează variabila minim cu o valoare mare și variabila exista cu valoarea False.&amp;lt;br&amp;gt;-&amp;gt; Parcurge vectorul y și găsește valoarea minimă din acesta. Valoarea minimă o stochează în variabila minim.&amp;lt;br&amp;gt;-&amp;gt; Parcurge vectorul x și afișează elementele din acesta care sunt mai mici decât minim. Dacă există cel puțin un astfel de element, variabila exista devine True.&amp;lt;br&amp;gt;-&amp;gt; Dacă nu există niciun element din vectorul x mai mic decât toate elementele din vectorul y, se afișează mesajul &amp;quot;NU EXISTA&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4104_-_afisare21&amp;diff=4505</id>
		<title>4104 - afisare21</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4104_-_afisare21&amp;diff=4505"/>
		<updated>2023-04-26T11:10:35Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4104/afisare21 - afisare21]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector &#039;&#039;&#039;x&#039;&#039;&#039; cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente numere întregi, și un vector &#039;&#039;&#039;y&#039;&#039;&#039; cu &#039;&#039;&#039;m&#039;&#039;&#039; elemente, de asemenea numere întregi. Să se afișeze toate elementele din vectorul &#039;&#039;&#039;x&#039;&#039;&#039; care sunt mai mici decât toate elementele din vectorul &#039;&#039;&#039;y&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi cele &#039;&#039;&#039;n&#039;&#039;&#039; elemente ale vectorului &#039;&#039;&#039;x&#039;&#039;&#039;. Apoi și citește &#039;&#039;&#039;m&#039;&#039;&#039; și cele &#039;&#039;&#039;m&#039;&#039;&#039; elemente ale lui &#039;&#039;&#039;y&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa elementele din vectorul x care sunt mai mici decât toate elementele din vectorul y, sau NU EXISTA dacă vectorul x nu conține astfel de elemente. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n, m&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;10.000&#039;&#039;&#039;&lt;br /&gt;
* elementele celor 2 vectori vor fi din intervalul &#039;&#039;&#039;[-1.000.000.000,1.000.000.000]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
: 9 -6 5 14 2 1 10 &lt;br /&gt;
: 8&lt;br /&gt;
: 8 14 9 14 16 15 4 6 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: -6 2 1&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 7&lt;br /&gt;
: 1 2 3 4&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 4104&lt;br /&gt;
&lt;br /&gt;
def afis_el_din_vect_x_mai_mici_decat_toate_el_din_y(n, x, m, y):&lt;br /&gt;
    minim = 1000000001&lt;br /&gt;
    exista = False&lt;br /&gt;
    for i in range(m):&lt;br /&gt;
        if y[i] &amp;lt; minim:&lt;br /&gt;
            minim = y[i]&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        advevarat = True&lt;br /&gt;
        if x[i] &amp;gt; minim:&lt;br /&gt;
            advevarat = False&lt;br /&gt;
        if advevarat:&lt;br /&gt;
            exista = True&lt;br /&gt;
            print(x[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
    if not exista:&lt;br /&gt;
        print(&amp;quot;NU EXISTA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, x, m, y):&lt;br /&gt;
    if n != len(x):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if m != len(y):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in x:&lt;br /&gt;
        if element &amp;lt; -1000000000 or element &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    for element in y:&lt;br /&gt;
        if element &amp;lt; -1000000000 or element &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 10000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if m &amp;lt; 1 or m &amp;gt; 10000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    x = list(map(int, input().split()))&lt;br /&gt;
    m = int(input())&lt;br /&gt;
    y = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, x, m, y)&lt;br /&gt;
    afis_el_din_vect_x_mai_mici_decat_toate_el_din_y(n, x, m, y)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
   Acest cod conține două funcții: afis_el_din_vect_x_mai_mici_decat_toate_el_din_y și citire_conform_restrictiilor(), care vor fi apelate în interiorul secțiunii &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 44) după citirea numărului n, vectorului x, m și vectorului y (se folosește comanda input() pentru citire și int() pentru a converti în numere).&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor&#039;&#039;&#039; primește ca parametrii numărul n, vectorul x, numărul m, respectiv vectorul y, și verifică dacă datele introduse respectă restricțiile (n, m să fie lungimile vectorilor x, respectiv y, elementele celor doi vectori să fie cuprinse între -1000000000 și 1000000000, n și m să fie cuprinse între 1 și 10000). Dacă datele nu corespund restricțiilor impuse, afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și se oprește execuția programului prin apelarea funcției exit(), iar dacă ele respectă restricțiile se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se poate continua programul.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;afis_el_din_vect_x_mai_mici_decat_toate_el_din_y&#039;&#039;&#039; primește patru parametri:&amp;lt;br&amp;gt;-&amp;gt; n: numărul de elemente din vectorul x&amp;lt;br&amp;gt;-&amp;gt; x: vectorul x&amp;lt;br&amp;gt;-&amp;gt; m: numărul de elemente din vectorul y&amp;lt;br&amp;gt;-&amp;gt; y: vectorul y&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;afis_el_din_vect_x_mai_mici_decat_toate_el_din_y(n, x, m, y)&#039;&#039;&#039; are următorul comportament:&amp;lt;br&amp;gt;-&amp;gt; Inițializează variabila minim cu o valoare mare și variabila exista cu valoarea False.&amp;lt;br&amp;gt;-&amp;gt; Parcurge vectorul y și găsește valoarea minimă din acesta. Valoarea minimă o stochează în variabila minim.&amp;lt;br&amp;gt;-&amp;gt; Parcurge vectorul x și afișează elementele din acesta care sunt mai mici decât minim. Dacă există cel puțin un astfel de element, variabila exista devine True.&amp;lt;br&amp;gt;-&amp;gt; Dacă nu există niciun element din vectorul x mai mic decât toate elementele din vectorul y, se afișează mesajul &amp;quot;NU EXISTA&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=29192_-_Groups&amp;diff=4503</id>
		<title>29192 - Groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=29192_-_Groups&amp;diff=4503"/>
		<updated>2023-04-26T10:58:47Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2919/2groups 2919 - 2Groups]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă numărul natural &#039;&#039;&#039;n&#039;&#039;&#039;. Să se împartă numerele naturale de la 1 la n în două grupuri astfel încât diferența absolută dintre sumele numerelor din cele două grupuri să fie minimă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează numerele din primul grup și pe al următorul rând numerele din al doilea grup, separate prin câte un spațiu. Ordinea afișării nu contează. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;100.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
; Ieșire variantă 1 (există mai multe modalității de așezare a acestor grupuri, ordinea afișării nu contează. Ceea ce contează e diferența absolută dintre sumele numerelor din cele două grupuri să fie 1.)&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 1 2 5&lt;br /&gt;
: 3 4&lt;br /&gt;
; Ieșire variantă 2&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 5 2&lt;br /&gt;
: 4 3 1&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234567&lt;br /&gt;
: 1 2 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 2919&lt;br /&gt;
&lt;br /&gt;
def construire_grupuri(n):&lt;br /&gt;
    vector1, vector2 = [], []&lt;br /&gt;
    lungime_vector_1, lungime_vector_2 = 0, 0&lt;br /&gt;
    for i in range(1, n + 1):&lt;br /&gt;
        if i % 2 == 1:&lt;br /&gt;
            vector1.append(i)&lt;br /&gt;
            lungime_vector_1 += 1&lt;br /&gt;
        else:&lt;br /&gt;
            vector2.append(i)&lt;br /&gt;
            lungime_vector_2 += 1&lt;br /&gt;
    if n % 2 == 1:&lt;br /&gt;
        for i in range(0, lungime_vector_1, 2):&lt;br /&gt;
            if i != lungime_vector_1 - 1:&lt;br /&gt;
                print(vector1[i], vector2[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(vector1[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
        print()&lt;br /&gt;
        for i in range(1, lungime_vector_2, 2):&lt;br /&gt;
            print(vector1[i], vector2[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        for i in range(0, lungime_vector_1):&lt;br /&gt;
            if i % 2 == 0:&lt;br /&gt;
                print(vector1[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(vector2[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
        print()&lt;br /&gt;
        for i in range(0, lungime_vector_1):&lt;br /&gt;
            if i % 2 == 1:&lt;br /&gt;
                print(vector1[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(vector2[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n):&lt;br /&gt;
    if n &amp;lt; 2 or n &amp;gt; 100000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    citire_conform_restrictiilor(n)&lt;br /&gt;
    construire_grupuri(n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
    Acest cod definește două funcții: &amp;quot;construire_grupuri(n)&amp;quot; și &amp;quot;citire_conform_restrictiilor()&amp;quot; care vor fi apelate în main-ul programului &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 43) după citirea numărului n (linia 44) care se face cu ajutorul comenzii input() și int() pentru a îl converti în număr întreg.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor()&#039;&#039;&#039; verifică dacă n se încadrează în intervalul [2, 100000]. Dacă nu, afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și oprește programul prin apelarea funcției exit(). În caz contrar, afișează &amp;quot;Datele sunt introduse corect.&amp;quot;.&amp;lt;br&amp;gt;   Pentru a crea două grupuri astfel încât diferența absolută dintre sumele numerelor din cele două să fie minimă folosim doi vectori în funcția &#039;&#039;&#039;construire_grupuri(n)&#039;&#039;&#039; vector1 și vector 2. Mai întâi, se inițializează cei doi vectori goi, vector1 și vector2, care vor conține numerele până la n împărțite în două subliste separate. De asemenea, se inițializează două variabile, lungime_vector_1 și lungime_vector_2, care vor reprezenta lungimile celor două subliste.&amp;lt;br&amp;gt;   Apoi, într-o buclă for care parcurge numerele de la 1 la n, fiecare număr impar este adăugat la vector1, iar fiecare număr par este adăugat la vector2. În același timp, variabilele lungime_vector_1 și lungime_vector_2 sunt actualizate pentru a reflecta noile lungimi ale celor două liste.&amp;lt;br&amp;gt;   Dacă n este impar, atunci bucla for ulterioră va parcurge doar elementele din vector1 și vector2 pentru a le grupa în perechi. Se folosește o buclă for care parcurge elementele din vector1 și vector2 începând cu primul element din vector1 și fiecare al doilea element din fiecare listă este afișat ca un grup de două elemente, până la ultimul element din vector1, care va fi afișat separat, în afara grupului de două elemente. După aceea, o altă buclă for este folosită pentru a afișa restul grupurilor de câte două elemente din vector1 și vector2.&amp;lt;br&amp;gt;  &lt;br /&gt;
 Dacă n este par, bucla for ulterioară va afișa elementele din vector1 și vector2 într-un mod specific. Mai întâi, se afișează primele grupuri de două elemente formată din vector1 și vector2 în ordine alternativă, astfel încât primul element din vector1 este afișat primul. Apoi, o altă buclă for este utilizată pentru a afișa restul grupurilor de câte două elemente din vector1 și vector2, în ordine inversă, astfel încât primul element din vector2 este afișat primul.&amp;lt;br&amp;gt;   În final, funcția &#039;&#039;&#039;construire_grupuri(n)&#039;&#039;&#039; afișează pe două linii separate de grupuri de numere, după ce grupurile de numere au fost construite în ordinea specificată mai sus.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0161_-_inlocuire&amp;diff=4502</id>
		<title>0161 - inlocuire</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0161_-_inlocuire&amp;diff=4502"/>
		<updated>2023-04-26T10:58:19Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/161/inlocuire 0161 - inlocuire]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, numere naturale. Să se înlocuiască toate elementele nule din vector cu partea întreagă a mediei aritmetice a elementelor nenule din vector.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează elementele vectorului, după înlocuire, separate prin câte un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;200&#039;&#039;&#039;&lt;br /&gt;
* elementele vectorului vor fi mai mici decât &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
* vectorul va conține cel puțin un element nenul&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 0 2 0 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 3 2 3 4 5&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234&lt;br /&gt;
: 1 2 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0161&lt;br /&gt;
&lt;br /&gt;
def inlocuire_el_nule_cu_media_el_nenule(vector, n):&lt;br /&gt;
    suma = 0&lt;br /&gt;
    nr_nenule = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if vector[i]:&lt;br /&gt;
            suma += vector[i]&lt;br /&gt;
            nr_nenule += 1&lt;br /&gt;
    media_el_nenule = suma // nr_nenule&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if not vector[i]:&lt;br /&gt;
            vector[i] = media_el_nenule&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        print(vector[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;gt;= 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    nr_nule = 0&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element == 0:&lt;br /&gt;
            nr_nule += 1&lt;br /&gt;
    if nr_nule == 0:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    inlocuire_el_nule_cu_media_el_nenule(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
    Programul de mai sus definește două funcții, funcția inlocuire_el_nule_cu_media_el_nenule(vector, n) și citire_conform_restrictiilor(vector, n), care sunt apelate în interiorul secțiunii &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 41) după citirea numărului n (linia 42, cu comanda input() și int() pentru a converti în număr) și celor n numere pe care le punem în vectorul &amp;quot;vector&amp;quot; (linia 43).&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; are ca parametrii numărul n și vectorul &amp;quot;vector&amp;quot; și verifică dacă acestea îndeplinesc anumite restricții, precum:&amp;lt;br&amp;gt;-&amp;gt; numărul n trebuie să fie între 1 și 200&amp;lt;br&amp;gt;-&amp;gt; fiecare element al vectorului trebuie să fie mai mic decât 1000&amp;lt;br&amp;gt;-&amp;gt; dimensiunea vectorului n trebuie să fie egală cu numărul de elemente introduse de la tastatură&amp;lt;br&amp;gt;-&amp;gt; vectorul trebuie să conțină cel puțin un element nul (avem o variabilă nr_nule pe care o inițializăm cu 0 și parcurgem tot vectorul și dacă elementul este nul, creștem cu 1 această variabilă, iar dacă ea este 0 după terminarea buclei, înseamnă că vectorul nu are niciun element nul, adică nu respectă condițiile).&amp;lt;br&amp;gt;-&amp;gt; dacă oricare restricție nu este respectată, programul afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și se termină prin apelarea funcției exit(). În caz contrar, programul afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și programul poate continua.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;inlocuire_el_nule_cu_media_el_nenule(vector, n)&#039;&#039;&#039; primește ca argumente un vector și dimensiunea sa și face următoarele acțiuni:&amp;lt;br&amp;gt;-&amp;gt; calculează suma și numărul de elemente nenule din vector, folosind o buclă for și o structură condițională if;&amp;lt;br&amp;gt;-&amp;gt; calculează media aritmetică a elementelor nenule din vector pe care o punem în variabila media_el_nenule;&amp;lt;br&amp;gt;-&amp;gt; înlocuiește toate elementele nule din vector cu media aritmetică a elementelor nenule din vector prin a parcurge vectorul cu un for loop și verificarea elementelor dacă sunt nule și înlocuirea acestora cu variabila media_el_nenule;&amp;lt;br&amp;gt;-&amp;gt; afișează vectorul inlocuit cu ajutorul unui for loop, separate printr-un spațiu, conform problemei.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0161_-_inlocuire&amp;diff=4501</id>
		<title>0161 - inlocuire</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0161_-_inlocuire&amp;diff=4501"/>
		<updated>2023-04-26T10:58:03Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/161/inlocuire 0161 - inlocuire]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, numere naturale. Să se înlocuiască toate elementele nule din vector cu partea întreagă a mediei aritmetice a elementelor nenule din vector.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează elementele vectorului, după înlocuire, separate prin câte un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;200&#039;&#039;&#039;&lt;br /&gt;
* elementele vectorului vor fi mai mici decât &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
* vectorul va conține cel puțin un element nenul&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 0 2 0 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 3 2 3 4 5&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0161&lt;br /&gt;
&lt;br /&gt;
def inlocuire_el_nule_cu_media_el_nenule(vector, n):&lt;br /&gt;
    suma = 0&lt;br /&gt;
    nr_nenule = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if vector[i]:&lt;br /&gt;
            suma += vector[i]&lt;br /&gt;
            nr_nenule += 1&lt;br /&gt;
    media_el_nenule = suma // nr_nenule&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if not vector[i]:&lt;br /&gt;
            vector[i] = media_el_nenule&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        print(vector[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;gt;= 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    nr_nule = 0&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element == 0:&lt;br /&gt;
            nr_nule += 1&lt;br /&gt;
    if nr_nule == 0:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    inlocuire_el_nule_cu_media_el_nenule(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
    Programul de mai sus definește două funcții, funcția inlocuire_el_nule_cu_media_el_nenule(vector, n) și citire_conform_restrictiilor(vector, n), care sunt apelate în interiorul secțiunii &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 41) după citirea numărului n (linia 42, cu comanda input() și int() pentru a converti în număr) și celor n numere pe care le punem în vectorul &amp;quot;vector&amp;quot; (linia 43).&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; are ca parametrii numărul n și vectorul &amp;quot;vector&amp;quot; și verifică dacă acestea îndeplinesc anumite restricții, precum:&amp;lt;br&amp;gt;-&amp;gt; numărul n trebuie să fie între 1 și 200&amp;lt;br&amp;gt;-&amp;gt; fiecare element al vectorului trebuie să fie mai mic decât 1000&amp;lt;br&amp;gt;-&amp;gt; dimensiunea vectorului n trebuie să fie egală cu numărul de elemente introduse de la tastatură&amp;lt;br&amp;gt;-&amp;gt; vectorul trebuie să conțină cel puțin un element nul (avem o variabilă nr_nule pe care o inițializăm cu 0 și parcurgem tot vectorul și dacă elementul este nul, creștem cu 1 această variabilă, iar dacă ea este 0 după terminarea buclei, înseamnă că vectorul nu are niciun element nul, adică nu respectă condițiile).&amp;lt;br&amp;gt;-&amp;gt; dacă oricare restricție nu este respectată, programul afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și se termină prin apelarea funcției exit(). În caz contrar, programul afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și programul poate continua.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;inlocuire_el_nule_cu_media_el_nenule(vector, n)&#039;&#039;&#039; primește ca argumente un vector și dimensiunea sa și face următoarele acțiuni:&amp;lt;br&amp;gt;-&amp;gt; calculează suma și numărul de elemente nenule din vector, folosind o buclă for și o structură condițională if;&amp;lt;br&amp;gt;-&amp;gt; calculează media aritmetică a elementelor nenule din vector pe care o punem în variabila media_el_nenule;&amp;lt;br&amp;gt;-&amp;gt; înlocuiește toate elementele nule din vector cu media aritmetică a elementelor nenule din vector prin a parcurge vectorul cu un for loop și verificarea elementelor dacă sunt nule și înlocuirea acestora cu variabila media_el_nenule;&amp;lt;br&amp;gt;-&amp;gt; afișează vectorul inlocuit cu ajutorul unui for loop, separate printr-un spațiu, conform problemei.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=29192_-_Groups&amp;diff=4500</id>
		<title>29192 - Groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=29192_-_Groups&amp;diff=4500"/>
		<updated>2023-04-26T10:42:55Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2919/2groups 2919 - 2Groups]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă numărul natural &#039;&#039;&#039;n&#039;&#039;&#039;. Să se împartă numerele naturale de la 1 la n în două grupuri astfel încât diferența absolută dintre sumele numerelor din cele două grupuri să fie minimă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează numerele din primul grup și pe al următorul rând numerele din al doilea grup, separate prin câte un spațiu. Ordinea afișării nu contează. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;100.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
; Ieșire variantă 1 (există mai multe modalității de așezare a acestor grupuri, ordinea afișării nu contează. Ceea ce contează e diferența absolută dintre sumele numerelor din cele două grupuri să fie 1.)&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 1 2 5&lt;br /&gt;
: 3 4&lt;br /&gt;
; Ieșire variantă 2&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 5 2&lt;br /&gt;
: 4 3 1&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234567&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 2919&lt;br /&gt;
&lt;br /&gt;
def construire_grupuri(n):&lt;br /&gt;
    vector1, vector2 = [], []&lt;br /&gt;
    lungime_vector_1, lungime_vector_2 = 0, 0&lt;br /&gt;
    for i in range(1, n + 1):&lt;br /&gt;
        if i % 2 == 1:&lt;br /&gt;
            vector1.append(i)&lt;br /&gt;
            lungime_vector_1 += 1&lt;br /&gt;
        else:&lt;br /&gt;
            vector2.append(i)&lt;br /&gt;
            lungime_vector_2 += 1&lt;br /&gt;
    if n % 2 == 1:&lt;br /&gt;
        for i in range(0, lungime_vector_1, 2):&lt;br /&gt;
            if i != lungime_vector_1 - 1:&lt;br /&gt;
                print(vector1[i], vector2[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(vector1[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
        print()&lt;br /&gt;
        for i in range(1, lungime_vector_2, 2):&lt;br /&gt;
            print(vector1[i], vector2[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        for i in range(0, lungime_vector_1):&lt;br /&gt;
            if i % 2 == 0:&lt;br /&gt;
                print(vector1[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(vector2[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
        print()&lt;br /&gt;
        for i in range(0, lungime_vector_1):&lt;br /&gt;
            if i % 2 == 1:&lt;br /&gt;
                print(vector1[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(vector2[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n):&lt;br /&gt;
    if n &amp;lt; 2 or n &amp;gt; 100000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    citire_conform_restrictiilor(n)&lt;br /&gt;
    construire_grupuri(n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
    Acest cod definește două funcții: &amp;quot;construire_grupuri(n)&amp;quot; și &amp;quot;citire_conform_restrictiilor()&amp;quot; care vor fi apelate în main-ul programului &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 43) după citirea numărului n (linia 44) care se face cu ajutorul comenzii input() și int() pentru a îl converti în număr întreg.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor()&#039;&#039;&#039; verifică dacă n se încadrează în intervalul [2, 100000]. Dacă nu, afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și oprește programul prin apelarea funcției exit(). În caz contrar, afișează &amp;quot;Datele sunt introduse corect.&amp;quot;.&amp;lt;br&amp;gt;   Pentru a crea două grupuri astfel încât diferența absolută dintre sumele numerelor din cele două să fie minimă folosim doi vectori în funcția &#039;&#039;&#039;construire_grupuri(n)&#039;&#039;&#039; vector1 și vector 2. Mai întâi, se inițializează cei doi vectori goi, vector1 și vector2, care vor conține numerele până la n împărțite în două subliste separate. De asemenea, se inițializează două variabile, lungime_vector_1 și lungime_vector_2, care vor reprezenta lungimile celor două subliste.&amp;lt;br&amp;gt;   Apoi, într-o buclă for care parcurge numerele de la 1 la n, fiecare număr impar este adăugat la vector1, iar fiecare număr par este adăugat la vector2. În același timp, variabilele lungime_vector_1 și lungime_vector_2 sunt actualizate pentru a reflecta noile lungimi ale celor două liste.&amp;lt;br&amp;gt;   Dacă n este impar, atunci bucla for ulterioră va parcurge doar elementele din vector1 și vector2 pentru a le grupa în perechi. Se folosește o buclă for care parcurge elementele din vector1 și vector2 începând cu primul element din vector1 și fiecare al doilea element din fiecare listă este afișat ca un grup de două elemente, până la ultimul element din vector1, care va fi afișat separat, în afara grupului de două elemente. După aceea, o altă buclă for este folosită pentru a afișa restul grupurilor de câte două elemente din vector1 și vector2.&amp;lt;br&amp;gt;  &lt;br /&gt;
 Dacă n este par, bucla for ulterioară va afișa elementele din vector1 și vector2 într-un mod specific. Mai întâi, se afișează primele grupuri de două elemente formată din vector1 și vector2 în ordine alternativă, astfel încât primul element din vector1 este afișat primul. Apoi, o altă buclă for este utilizată pentru a afișa restul grupurilor de câte două elemente din vector1 și vector2, în ordine inversă, astfel încât primul element din vector2 este afișat primul.&amp;lt;br&amp;gt;   În final, funcția &#039;&#039;&#039;construire_grupuri(n)&#039;&#039;&#039; afișează pe două linii separate de grupuri de numere, după ce grupurile de numere au fost construite în ordinea specificată mai sus.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0496_-_Numarare4&amp;diff=4499</id>
		<title>0496 - Numarare4</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0496_-_Numarare4&amp;diff=4499"/>
		<updated>2023-04-26T10:37:36Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/496/numarare4 0496 - Numarare4]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine câte dintre elementele vectorului sunt prime cu ultimul element.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează pe ecran numărul C, reprezentând valoarea cerută.. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 50 64 15 28 35 75&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 2&lt;br /&gt;
=== Explicație exemplu 1===&lt;br /&gt;
Elementele din vector prime cu &#039;&#039;&#039;75&#039;&#039;&#039; sunt &#039;&#039;&#039;64&#039;&#039;&#039; și &#039;&#039;&#039;28&#039;&#039;&#039;.&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0496&lt;br /&gt;
&lt;br /&gt;
def nr_elem_prime_cu_ultimul(vector, n):&lt;br /&gt;
    ultimul_element = vector[n-1]&lt;br /&gt;
    numar_elemente_prime = 0&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        limita_superioara = int(element**0.5) + 1&lt;br /&gt;
        nr_divizori_comuni = 0&lt;br /&gt;
        for divizor in range(3, limita_superioara, 2):&lt;br /&gt;
            if element % divizor == 0:&lt;br /&gt;
                nr_divizori_comuni += 1&lt;br /&gt;
        if nr_divizori_comuni == 0:&lt;br /&gt;
            numar_elemente_prime += 1&lt;br /&gt;
    print(numar_elemente_prime)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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; 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    nr_elem_prime_cu_ultimul(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
   În programul de mai sus se definesc două funcții, funcția nr_elem_prime_cu_ultimul(vector, n) și funcția citire_conform_restrictiilor(vector, n), care vor fi apelate în interiorul secțiunii &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;(liniile 34, 35), după citirea numărului n și celor n numere pe care le vom pune în vectorul &amp;quot;vector&amp;quot; (liniile 32, 33). &amp;lt;br&amp;gt;   În funcția numită &#039;&#039;&#039;citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; se asigură că input-ul îndeplinește restricțiile (numărul de elemente n este între 1 și 200, iar elementele vectorului sunt între 0 și 1000) și că numărul de elemente este egal cu n. Dacă oricare dintre condiții nu este respectată, atunci se afișează mesajul &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și programul se oprește prin apelul funcției &amp;quot;exit()&amp;quot;.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;nr_elem_prime_cu_ultimul(vector, n)&#039;&#039;&#039; primește vectorul și lungimea acestuia și apoi parcurge fiecare element din vector cu un for loop. Pentru fiecare element, se calculează limita superioară, adică rădăcina pătrată a elementului, plus 1 (avem nevoie de limita superioară pentru a verifica în mod eficient divizorii numerelor, fără a verifica toate numerele până la numărul respectiv). Apoi se parcurg toate numerele impare de la 3 până la limita superioară și se verifică dacă elementul este divizibil cu ele. Dacă nu este divizibil cu niciunul dintre acești divizori, atunci numărul este considerat prim și se incrementează numărul de elemente prime găsite, dar dacă ultimul element este 1, toate elementele din vector nu vor fi prime între ele, așadar numar_elemente_prime va fi 0. În cele din urmă, programul afișează numărul de elemente prime găsite.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4286_-_Constr3&amp;diff=4498</id>
		<title>4286 - Constr3</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4286_-_Constr3&amp;diff=4498"/>
		<updated>2023-04-26T10:30:21Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Explicație rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4286/constr3 4286 - Constr3]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector &#039;&#039;&#039;x&#039;&#039;&#039; cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, &#039;&#039;&#039;numere naturale&#039;&#039;&#039;. Să se construiască un alt vector, &#039;&#039;&#039;y&#039;&#039;&#039;, care să conțină &#039;&#039;&#039;elementele impare din x&#039;&#039;&#039;, în &#039;&#039;&#039;ordine inversă&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează &#039;&#039;&#039;elementele vectorului y&#039;&#039;&#039;, separate prin exact un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 50 5 15 29 13 40&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 13 29 15 5&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 4286&lt;br /&gt;
&lt;br /&gt;
def construirea_vect_y(vector, n):&lt;br /&gt;
    vector_impare = []&lt;br /&gt;
    contor = 0&lt;br /&gt;
    for i in range(n - 1, -1, -1):&lt;br /&gt;
        impar = True&lt;br /&gt;
        if vector[i] % 2 == 0:&lt;br /&gt;
            impar = False&lt;br /&gt;
        elif vector[i] % 2 != 0:&lt;br /&gt;
            impar = True&lt;br /&gt;
        if impar:&lt;br /&gt;
            vector_impare.append(vector[i])&lt;br /&gt;
            contor += 1&lt;br /&gt;
    for i in range(0, contor):&lt;br /&gt;
        print(vector_impare[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    construirea_vect_y(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
   Să luăm &#039;&#039;&#039;main-ul programului if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 33). Începem prin a citi datele de intrare, vector și n (liniile 34, 35, folosim int pentru a converti datele în numere întregi) și apelează funcțiile citire_conform_restrictiilor() și construire_vect_y() (liniile 36, 37).&amp;lt;br&amp;gt;   În funcția &#039;&#039;&#039;citire_conform_restricțiilor()&#039;&#039;&#039; verifică dacă n este între 1 și 200, dacă elemente dacă sunt între 1 și 1.000.000.000 și dacă numărul n dat anterior corespunde cu numărul de elemente al vectorului introdus. În caz contrar, se afișează mesajul &amp;quot;Datele nu corespund restricțiilor impuse&amp;quot; și se iese din program cu comanda exit(). Dacă datele respectă restricțiile, afișăm mesajul &amp;quot;Datele sunt introduse corect.&amp;quot; și se continuă programul.&amp;lt;br&amp;gt;   În funcția &#039;&#039;&#039;construire_vect_y()&#039;&#039;&#039;, construim un vector cu numele vector_impare care este inițial gol, și inițializăm o variabilă contor cu 0, care va fi lungimea vectorului vector_impare. Apoi, luăm pe rând elementele din vectorul dat în ordine inversă pentru a le introduce în ordinea cerută în problema noastră cu ajutorul unui for. Folosim variabila impar de tip boolean, inițializată cu True, care dacă elementul este impar este True, iar dacă nu, False. După această verificare (liniile 8-11), mai facem o altă verificare care adaugă in vector_impare elementele impare și adaugă + 1 în variabila contor (care reține lungimea vector_impare). Și, în finalul acestei funcții, după acest for, afișăm vector_impare cu ajutorul unui for loop și lăsăm un spațiu între fiecare element (liniile 15-16).&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4286_-_Constr3&amp;diff=4497</id>
		<title>4286 - Constr3</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4286_-_Constr3&amp;diff=4497"/>
		<updated>2023-04-26T10:27:57Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4286/constr3 4286 - Constr3]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector &#039;&#039;&#039;x&#039;&#039;&#039; cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, &#039;&#039;&#039;numere naturale&#039;&#039;&#039;. Să se construiască un alt vector, &#039;&#039;&#039;y&#039;&#039;&#039;, care să conțină &#039;&#039;&#039;elementele impare din x&#039;&#039;&#039;, în &#039;&#039;&#039;ordine inversă&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează &#039;&#039;&#039;elementele vectorului y&#039;&#039;&#039;, separate prin exact un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 50 5 15 29 13 40&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 13 29 15 5&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 4286&lt;br /&gt;
&lt;br /&gt;
def construirea_vect_y(vector, n):&lt;br /&gt;
    vector_impare = []&lt;br /&gt;
    contor = 0&lt;br /&gt;
    for i in range(n - 1, -1, -1):&lt;br /&gt;
        impar = True&lt;br /&gt;
        if vector[i] % 2 == 0:&lt;br /&gt;
            impar = False&lt;br /&gt;
        elif vector[i] % 2 != 0:&lt;br /&gt;
            impar = True&lt;br /&gt;
        if impar:&lt;br /&gt;
            vector_impare.append(vector[i])&lt;br /&gt;
            contor += 1&lt;br /&gt;
    for i in range(0, contor):&lt;br /&gt;
        print(vector_impare[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    construirea_vect_y(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare==&lt;br /&gt;
   Să luăm &#039;&#039;&#039;main-ul programului if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; (linia 33). Începem prin a citi datele de intrare, vector și n (liniile 34, 35, folosim int pentru a converti datele în numere întregi) și apelează funcțiile citire_conform_restrictiilor() și construire_vect_y() (liniile 36, 37).&amp;lt;br&amp;gt;   În funcția &#039;&#039;&#039;citire_conform_restricțiilor()&#039;&#039;&#039; verifică dacă n este între 1 și 200, dacă elemente dacă sunt între 1 și 1.000.000.000 și dacă numărul n dat anterior corespunde cu numărul de elemente al vectorului introdus. În caz contrar, se afișează mesajul &amp;quot;Datele nu corespund restricțiilor impuse&amp;quot; și se iese din program cu comanda exit(). Dacă datele respectă restricțiile, afișăm mesajul &amp;quot;Datele sunt introduse corect.&amp;quot; și &#039;&#039;&#039;returnăm vector și n&#039;&#039;&#039; pentru a le prelucra conform problemei.&amp;lt;br&amp;gt;   În funcția &#039;&#039;&#039;construire_vect_y()&#039;&#039;&#039;, construim un vector cu numele vector_impare care este inițial gol, și inițializăm o variabilă contor cu 0, care va fi lungimea vectorului vector_impare. Apoi, luăm pe rând elementele din vectorul dat în ordine inversă pentru a le introduce în ordinea cerută în problema noastră cu ajutorul unui for. Folosim variabila impar de tip boolean, inițializată cu True, care dacă elementul este impar este True, iar dacă nu, False. După această verificare (liniile 8-11), mai facem o altă verificare care adaugă in vector_impare elementele impare și adaugă + 1 în variabila contor (care reține lungimea vector_impare). Și, în finalul acestei funcții, după acest for, afișăm vector_impare cu ajutorul unui for loop și lăsăm un spațiu între fiecare element (liniile 15-16).&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0495_-_Constr2&amp;diff=4492</id>
		<title>0495 - Constr2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0495_-_Constr2&amp;diff=4492"/>
		<updated>2023-04-26T09:48:39Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/495/constr2 0495 - Constr2]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector &#039;&#039;&#039;x&#039;&#039;&#039; cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, numere naturale. Să se construiască un alt vector, &#039;&#039;&#039;y&#039;&#039;&#039;, care să conțină elementele prime din &#039;&#039;&#039;x&#039;&#039;&#039;, în ordine inversă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează &#039;&#039;&#039;elementele vectorului y&#039;&#039;&#039;, separate prin exact un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 50 5 15 29 13 40&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 13 29 5&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0495&lt;br /&gt;
&lt;br /&gt;
def construirea_vect_y(vector, n):&lt;br /&gt;
    vector_prime = []&lt;br /&gt;
    contor = 0&lt;br /&gt;
    for i in range(n - 1, -1, -1):&lt;br /&gt;
        prim = True&lt;br /&gt;
        if vector[i] &amp;lt; 2:&lt;br /&gt;
            prim = False&lt;br /&gt;
        elif vector[i] % 2 == 0 and vector[i] &amp;gt; 2:&lt;br /&gt;
            prim = False&lt;br /&gt;
        else:&lt;br /&gt;
            for d in range(3, int(vector[i] ** 0.5) + 1, 2):&lt;br /&gt;
                if vector[i] % d == 0:&lt;br /&gt;
                    prim = False&lt;br /&gt;
                    break&lt;br /&gt;
        if prim:&lt;br /&gt;
            vector_prime.append(vector[i])&lt;br /&gt;
            contor += 1&lt;br /&gt;
    for i in range(0, contor):&lt;br /&gt;
        print(vector_prime[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    construirea_vect_y(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
   Secțiunea &#039;&#039;&#039;if name == &#039;main&#039;:&#039;&#039;&#039; reprezintă punctul de intrare în program, adică funcția principală &amp;quot;main()&amp;quot;. În interiorul acestei secțiuni, se citește de la tastatură valoarea lui &amp;quot;n&amp;quot; utilizând funcția &amp;quot;input()&amp;quot; și se stochează în variabila &amp;quot;n&amp;quot; ca un întreg utilizând funcția &amp;quot;int()&amp;quot;. Apoi, se citește de la tastatură elementele vectorului &amp;quot;vector&amp;quot; utilizând funcția &amp;quot;input()&amp;quot;, care sunt separate prin spații și convertite într-un vector de întregi utilizând funcția &amp;quot;split()&amp;quot; și funcția &amp;quot;map()&amp;quot; împreună. Apoi, se apelează funcția &amp;quot;citire_conform_restrictiilor(vector, n)&amp;quot; pentru a verifica dacă valorile citite respectă restricțiile impuse. Dacă această verificare este trecută cu succes, se apelează funcția &amp;quot;construirea_vect_y(vector, n)&amp;quot; pentru a construi vectorul &amp;quot;vector_prime&amp;quot; și a afișa valorile primelor din acest vector.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; primește doi parametri: &amp;quot;vector&amp;quot; și &amp;quot;n&amp;quot;. Aceasta verifică dacă valorile lui &amp;quot;n&amp;quot; și elementele din &amp;quot;vector&amp;quot; respectă restricțiile impuse. Restricțiile impuse sunt următoarele: &amp;quot;n&amp;quot; trebuie să fie între 1 și 200, elementele din &amp;quot;vector&amp;quot; trebuie să fie între 0 și 1000000000, și numărul de elemente din &amp;quot;vector&amp;quot; trebuie să fie egal cu &amp;quot;n&amp;quot;. Verificarea se face utilizând statement-uri &amp;quot;if&amp;quot;. Dacă una dintre aceste restricții nu este îndeplinită, se afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; utilizând funcția &amp;quot;print()&amp;quot; și se folosește funcția &amp;quot;exit()&amp;quot; pentru a încheia execuția programului. Dacă restricțiile sunt respectate, se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se continuă programul.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;construirea_vect_y(vector, n)&#039;&#039;&#039; primește doi parametri: &amp;quot;vector&amp;quot; și &amp;quot;n&amp;quot;, reprezentând un vector de numere întregi și dimensiunea acestuia. Scopul acestei funcții este să construiască un alt vector, vector_prime, care să conțină doar valorile prime din vectorul inițial, în ordine inversă. Acest lucru se realizează astfel:&amp;lt;br&amp;gt;-&amp;gt; se declară o listă &amp;quot;vector_prime&amp;quot; care va fi utilizată pentru a stoca valorile prime din &amp;quot;vector&amp;quot;;&amp;lt;br&amp;gt;-&amp;gt; se declară o variabilă &amp;quot;contor&amp;quot; inițializată cu valoarea 0, care va fi utilizată pentru a număra câte valori prime sunt adăugate în &amp;quot;vector_prime&amp;quot;;&amp;lt;br&amp;gt;-&amp;gt; se parcurge vectorul &amp;quot;vector&amp;quot; cu ajutorul unui for loop de la indexul &amp;quot;n-1&amp;quot; până la indexul 0, utilizând un ciclu &amp;quot;for&amp;quot; cu o iterație inversă, adică de la &amp;quot;n-1&amp;quot; până la 0, cu un pas de -1 (începem vectorul de pe poziția 0);&amp;lt;br&amp;gt;-&amp;gt; pentru fiecare element din &amp;quot;vector&amp;quot;, la fiecare iterație;&amp;lt;br&amp;gt; se inițializează o variabilă prim cu valoarea booleană True (care va fi la început True pentru fiecare element din vector deoarece se inițializează la începutul for loop-ului);&amp;lt;br&amp;gt;-&amp;gt; dacă elementul din &amp;quot;vector&amp;quot; este mai mare sau egal cu 2 și este un număr par, atunci acesta nu poate fi prim, și se setează variabila &amp;quot;prim&amp;quot; la False;&amp;lt;br&amp;gt;-&amp;gt; în caz contrar, se parcurge un alt ciclu &amp;quot;for&amp;quot; de la 3 până la radicalul pătrat al valorii din &amp;quot;vector&amp;quot; + 1, cu un pas de 2 (deoarece numerele pare mai mari decât 2 nu pot fi prime, iar numerele prime sunt întotdeauna impare, cu excepția valorii 2). În interiorul acestul for loop, se verifică dacă valoarea din &amp;quot;vector&amp;quot; este divizibilă cu un număr din intervalul [3, radical pătrat al valorii din &amp;quot;vector&amp;quot;] (exclusiv). Dacă este divizibilă, atunci nu este primă, iar variabila &amp;quot;prim&amp;quot; este setată la False și se iese din ciclul &amp;quot;for&amp;quot; utilizând instrucțiunea &amp;quot;break&amp;quot;;&amp;lt;br&amp;gt;-&amp;gt; dacă nu a fost găsită nicio valoare cu care să fie divizibilă valoarea din &amp;quot;vector&amp;quot;, atunci aceasta este primă, iar variabila &amp;quot;prim&amp;quot; rămâne de la început True;&amp;lt;br&amp;gt; dacă variabila &amp;quot;prim&amp;quot; este True, adică valoarea din &amp;quot;vector&amp;quot; este primă, atunci aceasta este adăugată în &amp;quot;vector_prime&amp;quot; utilizând funcția &amp;quot;append()&amp;quot;, și &amp;quot;contor&amp;quot; este incrementat (contor este lungimea vectorului vector_prime);&amp;lt;br&amp;gt; după ce am terminat cu acest for loop, adăugăm încă unul care parcurge vector_prime și afișează toate elementele din acesta, ele fiind ceea ce problema noastră ne cere.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0495_-_Constr2&amp;diff=4491</id>
		<title>0495 - Constr2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0495_-_Constr2&amp;diff=4491"/>
		<updated>2023-04-26T09:46:46Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/495/constr2 0495 - Constr2]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector &#039;&#039;&#039;x&#039;&#039;&#039; cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, numere naturale. Să se construiască un alt vector, &#039;&#039;&#039;y&#039;&#039;&#039;, care să conțină elementele prime din &#039;&#039;&#039;x&#039;&#039;&#039;, în ordine inversă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează &#039;&#039;&#039;elementele vectorului y&#039;&#039;&#039;, separate prin exact un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 50 5 15 29 13 40&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 13 29 5&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0495&lt;br /&gt;
&lt;br /&gt;
def construirea_vect_y(vector, n):&lt;br /&gt;
    vector_prime = []&lt;br /&gt;
    contor = 0&lt;br /&gt;
    for i in range(n - 1, -1, -1):&lt;br /&gt;
        prim = True&lt;br /&gt;
        if vector[i] &amp;lt; 2:&lt;br /&gt;
            prim = False&lt;br /&gt;
        elif vector[i] % 2 == 0 and vector[i] &amp;gt; 2:&lt;br /&gt;
            prim = False&lt;br /&gt;
        else:&lt;br /&gt;
            for d in range(3, int(vector[i] ** 0.5) + 1, 2):&lt;br /&gt;
                if vector[i] % d == 0:&lt;br /&gt;
                    prim = False&lt;br /&gt;
                    break&lt;br /&gt;
        if prim:&lt;br /&gt;
            vector_prime.append(vector[i])&lt;br /&gt;
            contor += 1&lt;br /&gt;
    for i in range(0, contor):&lt;br /&gt;
        print(vector_prime[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    construirea_vect_y(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    vector, n = citire_conform_restrictiilor()&lt;br /&gt;
    construirea_vect_y(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
   Secțiunea &#039;&#039;&#039;if name == &#039;main&#039;:&#039;&#039;&#039; reprezintă punctul de intrare în program, adică funcția principală &amp;quot;main()&amp;quot;. În interiorul acestei secțiuni, se citește de la tastatură valoarea lui &amp;quot;n&amp;quot; utilizând funcția &amp;quot;input()&amp;quot; și se stochează în variabila &amp;quot;n&amp;quot; ca un întreg utilizând funcția &amp;quot;int()&amp;quot;. Apoi, se citește de la tastatură elementele vectorului &amp;quot;vector&amp;quot; utilizând funcția &amp;quot;input()&amp;quot;, care sunt separate prin spații și convertite într-un vector de întregi utilizând funcția &amp;quot;split()&amp;quot; și funcția &amp;quot;map()&amp;quot; împreună. Apoi, se apelează funcția &amp;quot;citire_conform_restrictiilor(vector, n)&amp;quot; pentru a verifica dacă valorile citite respectă restricțiile impuse. Dacă această verificare este trecută cu succes, se apelează funcția &amp;quot;construirea_vect_y(vector, n)&amp;quot; pentru a construi vectorul &amp;quot;vector_prime&amp;quot; și a afișa valorile primelor din acest vector.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; primește doi parametri: &amp;quot;vector&amp;quot; și &amp;quot;n&amp;quot;. Aceasta verifică dacă valorile lui &amp;quot;n&amp;quot; și elementele din &amp;quot;vector&amp;quot; respectă restricțiile impuse. Restricțiile impuse sunt următoarele: &amp;quot;n&amp;quot; trebuie să fie între 1 și 200, elementele din &amp;quot;vector&amp;quot; trebuie să fie între 0 și 1000000000, și numărul de elemente din &amp;quot;vector&amp;quot; trebuie să fie egal cu &amp;quot;n&amp;quot;. Verificarea se face utilizând statement-uri &amp;quot;if&amp;quot;. Dacă una dintre aceste restricții nu este îndeplinită, se afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; utilizând funcția &amp;quot;print()&amp;quot; și se folosește funcția &amp;quot;exit()&amp;quot; pentru a încheia execuția programului. Dacă restricțiile sunt respectate, se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se continuă programul.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;construirea_vect_y(vector, n)&#039;&#039;&#039; primește doi parametri: &amp;quot;vector&amp;quot; și &amp;quot;n&amp;quot;, reprezentând un vector de numere întregi și dimensiunea acestuia. Scopul acestei funcții este să construiască un alt vector, vector_prime, care să conțină doar valorile prime din vectorul inițial, în ordine inversă. Acest lucru se realizează astfel:&amp;lt;br&amp;gt;-&amp;gt; se declară o listă &amp;quot;vector_prime&amp;quot; care va fi utilizată pentru a stoca valorile prime din &amp;quot;vector&amp;quot;;&amp;lt;br&amp;gt;-&amp;gt; se declară o variabilă &amp;quot;contor&amp;quot; inițializată cu valoarea 0, care va fi utilizată pentru a număra câte valori prime sunt adăugate în &amp;quot;vector_prime&amp;quot;;&amp;lt;br&amp;gt;-&amp;gt; se parcurge vectorul &amp;quot;vector&amp;quot; cu ajutorul unui for loop de la indexul &amp;quot;n-1&amp;quot; până la indexul 0, utilizând un ciclu &amp;quot;for&amp;quot; cu o iterație inversă, adică de la &amp;quot;n-1&amp;quot; până la 0, cu un pas de -1 (începem vectorul de pe poziția 0);&amp;lt;br&amp;gt;-&amp;gt; pentru fiecare element din &amp;quot;vector&amp;quot;, la fiecare iterație;&amp;lt;br&amp;gt; se inițializează o variabilă prim cu valoarea booleană True (care va fi la început True pentru fiecare element din vector deoarece se inițializează la începutul for loop-ului);&amp;lt;br&amp;gt;-&amp;gt; dacă elementul din &amp;quot;vector&amp;quot; este mai mare sau egal cu 2 și este un număr par, atunci acesta nu poate fi prim, și se setează variabila &amp;quot;prim&amp;quot; la False;&amp;lt;br&amp;gt;-&amp;gt; în caz contrar, se parcurge un alt ciclu &amp;quot;for&amp;quot; de la 3 până la radicalul pătrat al valorii din &amp;quot;vector&amp;quot; + 1, cu un pas de 2 (deoarece numerele pare mai mari decât 2 nu pot fi prime, iar numerele prime sunt întotdeauna impare, cu excepția valorii 2). În interiorul acestul for loop, se verifică dacă valoarea din &amp;quot;vector&amp;quot; este divizibilă cu un număr din intervalul [3, radical pătrat al valorii din &amp;quot;vector&amp;quot;] (exclusiv). Dacă este divizibilă, atunci nu este primă, iar variabila &amp;quot;prim&amp;quot; este setată la False și se iese din ciclul &amp;quot;for&amp;quot; utilizând instrucțiunea &amp;quot;break&amp;quot;;&amp;lt;br&amp;gt;-&amp;gt; dacă nu a fost găsită nicio valoare cu care să fie divizibilă valoarea din &amp;quot;vector&amp;quot;, atunci aceasta este primă, iar variabila &amp;quot;prim&amp;quot; rămâne de la început True;&amp;lt;br&amp;gt; dacă variabila &amp;quot;prim&amp;quot; este True, adică valoarea din &amp;quot;vector&amp;quot; este primă, atunci aceasta este adăugată în &amp;quot;vector_prime&amp;quot; utilizând funcția &amp;quot;append()&amp;quot;, și &amp;quot;contor&amp;quot; este incrementat (contor este lungimea vectorului vector_prime);&amp;lt;br&amp;gt; după ce am terminat cu acest for loop, adăugăm încă unul care parcurge vector_prime și afișează toate elementele din acesta, ele fiind ceea ce problema noastră ne cere.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0494_-_Constr1&amp;diff=4488</id>
		<title>0494 - Constr1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0494_-_Constr1&amp;diff=4488"/>
		<updated>2023-04-26T09:26:48Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/494/constr1 0494 - Constr1]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector &#039;&#039;&#039;x&#039;&#039;&#039; cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, numere naturale. Să se construiască un alt vector, &#039;&#039;&#039;y&#039;&#039;&#039;, cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, cu proprietatea că &#039;&#039;&#039;y[i]&#039;&#039;&#039; este egal cu suma elementelor din &#039;&#039;&#039;x&#039;&#039;&#039;, cu excepția lui &#039;&#039;&#039;x[i]&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou cele &#039;&#039;&#039;n elemente ale vectorului y&#039;&#039;&#039;, separate prin exact un spațiu. În caz contrar, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 50 5 15 29 35 40&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 124 169 159 145 139 134&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0494&lt;br /&gt;
&lt;br /&gt;
def constr_vectorului_y(vector, n):&lt;br /&gt;
    y = [0] * n&lt;br /&gt;
    suma_elem_din_vector = sum(vector)&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        y[i] = suma_elem_din_vector - vector[i]&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        print(y[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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; 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    constr_vectorului_y(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    În programul de mai sus, sunt definite două funcții, &#039;&#039;&#039;constr_vectorului_y()&#039;&#039;&#039; și &#039;&#039;&#039;citire_conform_restrictiilor()&#039;&#039;&#039;, și se folosește secțiunea &#039;&#039;&#039;if name == &#039;main&#039;:&#039;&#039;&#039; pentru a citi datele de intrare de la tastatură (numărul n și vectorul &amp;quot;vector&amp;quot;), a verifica restricțiile acestora utilizând funcția &amp;quot;citire_conform_restrictiilor()&amp;quot;, și apoi a apela funcția &amp;quot;constr_vectorului_y()&amp;quot; pentru a construi și afișa vectorul y conform problemei.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; primește doi parametri: &amp;quot;vector&amp;quot; și &amp;quot;n&amp;quot;. Ea verifică dacă valorile lui &amp;quot;n&amp;quot; și elementele din &amp;quot;vector&amp;quot; respectă restricțiile impuse, și anume: &amp;quot;n&amp;quot; trebuie să fie între 1 și 200, elementele din &amp;quot;vector&amp;quot; trebuie să fie între 0 și 1000, și numărul de elemente din &amp;quot;vector&amp;quot; trebuie să fie egal cu &amp;quot;n&amp;quot;. Dacă aceste restricții nu sunt îndeplinite, funcția afișează mesajul &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și folosește funcția &amp;quot;exit()&amp;quot; pentru a încheia execuția programului. Dacă restricțiile sunt respectate, se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se continuă programul.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;constr_vectorului_y(vector, n)&#039;&#039;&#039; primește doi parametri: &amp;quot;vector&amp;quot; și &amp;quot;n&amp;quot;. Ea construiește un alt vector &amp;quot;y&amp;quot; cu aceeași dimensiune ca și &amp;quot;vector&amp;quot;, în care fiecare element este suma tuturor elementelor din &amp;quot;vector&amp;quot; minus valoarea elementului corespunzător din &amp;quot;vector&amp;quot;. Mai precis, pentru fiecare element din &amp;quot;vector&amp;quot; de la indexul 0 până la indexul &amp;quot;n-1&amp;quot;, se calculează suma tuturor elementelor din &amp;quot;vector&amp;quot; utilizând funcția &amp;quot;sum()&amp;quot;, și se scade din această sumă valoarea elementului &amp;quot;vector[i]&amp;quot; pentru a obține valoarea corespunzătoare din &amp;quot;y&amp;quot;. Această valoare este atribuită elementului &amp;quot;y[i]&amp;quot; din vectorul &amp;quot;y&amp;quot;. Funcția &amp;quot;constr_vectorului_y()&amp;quot; nu returnează nimic, ci doar afișează elementele vectorului &amp;quot;y&amp;quot; utilizând un ciclu &amp;quot;for&amp;quot; și funcția &amp;quot;print()&amp;quot; cu argumentul &amp;quot;end=&#039; &#039;&amp;quot; pentru a afișa toate elementele separate printr-un spațiu.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1860_-_BlackFriday&amp;diff=4484</id>
		<title>1860 - BlackFriday</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1860_-_BlackFriday&amp;diff=4484"/>
		<updated>2023-04-26T09:08:38Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1860/blackfriday 1860 - BlackFriday]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Anul acesta unele magazine din România s-au hotărât să organizeze BlackFriday joia, altele de luni până joi, iar altele sâmbătă şi duminică. Ele au afişat &#039;&#039;&#039;n&#039;&#039;&#039; preţuri înainte de ieftinire şi cele n preţuri după ieftinire. Aflaţi ce produs s-a ieftinit cu cel mai mare procent.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;blackfriday.in&#039;&#039;&#039; conține pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spații reprezentând preţurile înainte de ieftinire, iar pe a treia linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spații reprezentând preţurile corespunzătoare după ieftinire.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele din fișier sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi în fișierul blackfriday.out se va afișa pe prima linie &#039;&#039;&#039;numărul k&#039;&#039;&#039;, reprezentând numărul de ordine din şirul de preţuri dat al produsului care s-a ieftinit cu cel mai mare procent. În cazul în care datele din fișier nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele din fișier nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 2 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 10&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* dacă sunt mai multe preţuri care s-au ieftinit cu acelaşi procent se va afişa numărul de ordine mai mic&lt;br /&gt;
* preţurile după ieftinire sunt &#039;&#039;&#039;strict mai mici&#039;&#039;&#039; decât cele anterioare(evident).&lt;br /&gt;
Exemplu:&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; blackfriday.in&lt;br /&gt;
: 3&lt;br /&gt;
: 8 15 200&lt;br /&gt;
: 4 6 160&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele din fișier sunt introduse corect.&lt;br /&gt;
; blackfriday.out&lt;br /&gt;
: 2&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; blackfriday.in&lt;br /&gt;
: 4&lt;br /&gt;
: 8 15 200 12&lt;br /&gt;
: 4 6 160 16&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele din fișier nu corespund restricțiilor impuse.&lt;br /&gt;
; blackfriday.out&lt;br /&gt;
: &amp;lt;br&amp;gt;&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;
# 1860&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, pret_initial, pret_redus):&lt;br /&gt;
    if n &amp;lt; 2 or n &amp;gt; 10:&lt;br /&gt;
        print(&amp;quot;Datele din fișier nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for elem in pret_initial:&lt;br /&gt;
        if elem &amp;lt; 1 or elem &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele din fișier nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    for elem in pret_redus:&lt;br /&gt;
        if elem &amp;lt; 1 or elem &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele din fișier nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if(pret_initial[i] &amp;lt; pret_redus[i]):&lt;br /&gt;
            print(&amp;quot;Datele din fișier nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    print(&amp;quot;Datele din fișier sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def afis_produsului_cu_reducerea_cea_mai_mare_in_blackfridayout(n, pret_initial, pret_redus):&lt;br /&gt;
    max_reducere = -1&lt;br /&gt;
    k = -1&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        reducere = (pret_initial[i] - pret_redus[i]) / pret_initial[i]&lt;br /&gt;
        if reducere &amp;gt; max_reducere:&lt;br /&gt;
            max_reducere = reducere&lt;br /&gt;
            k = i + 1&lt;br /&gt;
    with open(&amp;quot;blackfriday.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
        f.write(str(k))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&amp;quot;blackfriday.in&amp;quot;) as f:&lt;br /&gt;
        n = int(f.readline())&lt;br /&gt;
        pret_initial = list(map(int, f.readline().split()))&lt;br /&gt;
        pret_redus = list(map(int, f.readline().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, pret_initial, pret_redus)&lt;br /&gt;
    afis_produsului_cu_reducerea_cea_mai_mare_in_blackfridayout(n, pret_initial, pret_redus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Programul de mai sus definește două funcții:&amp;lt;br&amp;gt;1. Funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, pret_initial, pret_redus)&#039;&#039;&#039;, care verifică dacă datele de intrare respectă restricțiile impuse. Aceasta primește trei argumente: &amp;quot;n&amp;quot; - numărul de produse, &amp;quot;pret_initial&amp;quot; - o listă de prețuri inițiale ale produselor și &amp;quot;pret_redus&amp;quot; - o listă de prețuri reduse ale produselor. Funcția parcurge fiecare preț din listele &amp;quot;pret_initial&amp;quot; și &amp;quot;pret_redus&amp;quot; și verifică dacă respectă restricțiile impuse (n să fie între 2 și 10 inclusiv, iar prețurile să fie între 1 și 1000000000 inclusiv). Dacă una dintre restricții nu este respectată, se afișează &amp;quot;Datele din fișier nu corespund restricțiilor impuse.&amp;quot; și programul se încheie prin apelul funcției &amp;quot;exit()&amp;quot;. Dacă toate restricțiile sunt respectate, se afișează &amp;quot;Datele din fișier sunt introduse corect.&amp;quot; și se continuă programul.&amp;lt;br&amp;gt;2. Funcția &#039;&#039;&#039;afis_produsului_cu_reducerea_cea_mai_mare_in_blackfridayout(n, pret_initial, pret_redus)&#039;&#039;&#039;, care identifică produsul cu cea mai mare reducere în procent și scrie numărul său de ordine în fișierul de ieșire blackfriday.out. Se procedează astfel:&amp;lt;br&amp;gt;-&amp;gt; se inițializează o variabilă &amp;quot;max_reducere&amp;quot; cu valoarea -1 și o variabilă &amp;quot;k&amp;quot; cu valoarea -1. Acestea vor fi utilizate pentru a urmări produsul cu cea mai mare reducere în procent și numărul său de ordine în listele de prețuri;&amp;lt;br&amp;gt;-&amp;gt; parcurge fiecare produs cu un for loop în intervalul de la 0 la n-1 (deoarece indicii în listele de prețuri încep de la 0) folosind un ciclu &amp;quot;for&amp;quot; și variabila &amp;quot;i&amp;quot; ca indice;&amp;lt;br&amp;gt;-&amp;gt; calculează reducerea în procent pentru fiecare produs utilizând formula reducere = (pret_initial[i] - pret_redus[i]) / pret_initial[i] (reducerea în procent este diferența dintre prețul inițial și prețul redus, împărțită la prețul inițial, exprimată ca valoare în intervalul [0, 1]);&amp;lt;br&amp;gt;-&amp;gt; compară reducerea calculată pentru produsul curent cu valoarea maximă a reducerii în procent găsită până în acel moment (stocată în variabila &amp;quot;max_reducere&amp;quot;). Dacă reducerea curentă este mai mare decât valoarea maximă, actualizează valoarea maximă a reducerii cu reducerea curentă și actualizează variabila &amp;quot;k&amp;quot; cu indicele produsului curent i + 1 (deoarece numărul de ordine al produsului este indicele + 1 în listele de prețuri, vectorul nostru începe de la 0, dar poziția sa este + 1);&amp;lt;br&amp;gt;-&amp;gt; după ce au fost parcurse toate produsele, variabila &amp;quot;k&amp;quot; va conține numărul de ordine al produsului cu cea mai mare reducere în procent;&amp;lt;br&amp;gt;-&amp;gt; deschide fișierul de ieșire &amp;quot;blackfriday.out&amp;quot; în modul de scriere (&amp;quot;w&amp;quot;) utilizând declarația &amp;quot;with open(...) as f. Apoi, scrie în fișier valoarea variabilei &amp;quot;k&amp;quot; convertită la șir de caractere folosind funcția &amp;quot;str()&amp;quot;.&amp;lt;br&amp;gt;   Secțiunea &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; deschide inițial fișierul blackfriday.in cu ajutorul declarației with open(...) as f și citește numărul n, lista pret_initial și lista pret_redus. Apoi, apelează cele două funcții descrise mai sus citire_conform_restrictiilor(n, pret_initial, pret_redus) și afis_produsului_cu_reducerea_cea_mai_mare_in_blackfridayout(n, pret_initial, pret_redus) și finalizează programul, afișând rezultatele conform problemei.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0493_-_Constr&amp;diff=4007</id>
		<title>0493 - Constr</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0493_-_Constr&amp;diff=4007"/>
		<updated>2023-04-22T10:37:31Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/493/constr 0493 - Constr]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector &#039;&#039;&#039;x&#039;&#039;&#039; cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, numere naturale. Să se construiască un alt vector, &#039;&#039;&#039;y&#039;&#039;&#039;, cu proprietatea că &#039;&#039;&#039;y[i]&#039;&#039;&#039; este egal cu restul împărțirii lui &#039;&#039;&#039;x[i]&#039;&#039;&#039; la suma cifrelor lui &#039;&#039;&#039;x[i]&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează &#039;&#039;&#039;elementele vectorului y&#039;&#039;&#039;, separate prin exact un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 50 1815 15 289 35 40&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 0 0 3 4 3 0 &lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0493&lt;br /&gt;
&lt;br /&gt;
def construirea_vectorului_y(x, n):&lt;br /&gt;
    y = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        a, s = x[i], 0&lt;br /&gt;
        while a:&lt;br /&gt;
            s += a % 10&lt;br /&gt;
            a //= 10&lt;br /&gt;
        y.append(x[i] % s)&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        print(y[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(x, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for elem in x:&lt;br /&gt;
        if elem &amp;lt; 0 or elem &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(x):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    x = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(x, n)&lt;br /&gt;
    construirea_vectorului_y(x, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Programul începe prin definirea unei funcții numite &#039;&#039;&#039;construirea_vectorului_y(x, n)&#039;&#039;&#039;, care primește două argumente: vectorul x și numărul n. În această funcție, se creează un vector gol y, în care vom adăuga ulterior elemente. Se parcurge vectorul x folosind un ciclu for. La fiecare iterație, se extrage elementul a de pe poziția i din vectorul x și se inițializează o variabilă s cu valoarea 0. Apoi, se parcurge cifrele din elementul a folosind un alt ciclu while. La fiecare iterație a acestui ciclu, se adaugă la variabila s ultima cifră a lui a, obținută prin operarea modulo 10, și se împarte a la 10, eliminându-se astfel ultima cifră. Aceasta se repetă până când a devine 0, moment în care suma cifrelor elementului a este acumulată în variabila s. Apoi, se adaugă la vectorul y valoarea a % s, care reprezintă restul împărțirii elementului a la suma cifrelor acestuia. Aceasta se realizează folosind metoda append() a listelor în Python. La final, se parcurge vectorul y și se afișează elementele pe ecran, separate prin spațiu, folosind un alt ciclu for și funcția print() cu argumentul end=&amp;quot; &amp;quot;, care specifică separatorul dintre elemente ca fiind spațiul.&amp;lt;br&amp;gt;   În continuare, programul definește o funcție numită &#039;&#039;&#039;citire_conform_restrictiilor(x, n)&#039;&#039;&#039;, care primește două argumente: vectorul x și numărul n. Această funcție verifică dacă n și elementele din vectorul x respectă anumite restricții. Dacă n este mai mic decât 1 sau mai mare decât 200, sau dacă oricare dintre elementele din vectorul x este mai mic decât 0 sau mai mare decât 1000000000, sau dacă n nu este egal cu lungimea vectorului x, atunci se afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și programul se încheie folosind funcția exit(). Dacă toate restricțiile sunt respectate, se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se continuă programul.&amp;lt;br&amp;gt;   În secțiunea &#039;&#039;&#039;if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;, se citește numărul n de la intrare folosind funcția input() și se convertește la tipul întreg folosind int(). Apoi, se citește vectorul x de la intrare, care conține n numere întregi separate prin spațiu, și se convertește într-o listă de întregi folosind funcția map() împreună cu int() pentru a aplica conversia la fiecare element din input-ul citit. Apoi, se apelează funcția citire_conform_restrictiilor(x, n) pentru a verifica restricțiile impuse asupra datelor citite. Dacă restricțiile sunt respectate, se apelează funcția construirea_vectorului_y(x, n) pentru a construi și afișa vectorul y, conform problemei.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4105_-_NumarareDiv&amp;diff=4006</id>
		<title>4105 - NumarareDiv</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4105_-_NumarareDiv&amp;diff=4006"/>
		<updated>2023-04-22T10:27:37Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4105/numararediv 4105 - NumarareDiv]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine câte dintre perechile de elemente din vector au același număr de divizori.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează pe ecran &#039;&#039;&#039;numărul c&#039;&#039;&#039;, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 13 3 8 7 9 25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 4&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
Perechile de elemente cu același număr de divizori sunt:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;13 3&#039;&#039;&#039; – cu câte 2 divizori fiecare&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;13 7&#039;&#039;&#039; – cu câte 2 divizori fiecare&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;3 7&#039;&#039;&#039; – cu câte 2 divizori fiecare&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9 25&#039;&#039;&#039; – cu câte 3 divizori fiecare&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 4105&lt;br /&gt;
&lt;br /&gt;
def numar_divizori(n):&lt;br /&gt;
    divizori = 0&lt;br /&gt;
    for i in range(1, int(n ** 0.5) + 1):&lt;br /&gt;
        if n % i == 0:&lt;br /&gt;
            divizori += 1&lt;br /&gt;
            if i * i != n:&lt;br /&gt;
                divizori += 1&lt;br /&gt;
    return divizori&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def cate_perechi_cu_acelasi_nr_divizori(vector, n):&lt;br /&gt;
    s = [numar_divizori(x) for x in vector]&lt;br /&gt;
    c = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(i+1, n):&lt;br /&gt;
            if s[i] == s[j]:&lt;br /&gt;
                c += 1&lt;br /&gt;
    print(c)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;lt; 1 or x &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    cate_perechi_cu_acelasi_nr_divizori(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    &#039;&#039;&#039;Funcția numar_divizori(n)&#039;&#039;&#039; primește un număr întreg n ca argument și returnează numărul de divizori ai acestuia. Pentru a determina acest număr, se utilizează o buclă for care parcurge toate valorile între 1 și rădăcina pătrată a lui n și se verifică dacă n este divizibil cu aceste valori folosind operatorul modulo (%). Dacă n este divizibil cu un anumit număr, atunci se incrementează un contor numit divizori. De asemenea, se adaugă încă un divizor pentru fiecare valoare găsită, cu excepția cazului în care valoarea găsită este chiar rădăcina pătrată a lui n, pentru a evita dublarea divizorului. La final, funcția returnează numărul total de divizori.&amp;lt;br&amp;gt;   &#039;&#039;&#039;Funcția cate_perechi_cu_acelasi_nr_divizori(vector, n)&#039;&#039;&#039; primește un vector de numere întregi vector și un număr întreg n reprezentând lungimea vectorului. Scopul acestei funcții este să numere câte perechi de numere din vector au același număr de divizori. Se folosește o buclă for dublă pentru a compara fiecare pereche posibilă de numere din vector. Dacă numărul de divizori al celor două numere este același, se incrementează un contor numit c. La final, se afișează valoarea contorului.&amp;lt;br&amp;gt;   &#039;&#039;&#039;Funcția citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; primește un vector „vector” și un număr întreg n reprezentând lungimea vectorului și verifică dacă vectorul și lungimea acestuia respectă restricțiile problemei. Restricțiile impuse sunt: n trebuie să fie între 1 și 1000, fiecare element al vectorului trebuie să fie între 1 și 1000000000, iar lungimea vectorului trebuie să fie egală cu n. Dacă una dintre aceste restricții nu este respectată, se afișează „Datele nu corespund restricțiilor impuse.” și programul se încheie folosind funcția exit(). Dacă toate restricțiile sunt respectate, se afișează „Datele sunt introduse corect.”.&amp;lt;br&amp;gt;   La final, în &#039;&#039;&#039;blocul if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;, programul citește de la intrare un număr n, apoi un vector „vector”, și apoi apelează funcțiile citire_conform_restrictiilor(vector, n) și cate_perechi_cu_acelasi_nr_divizori(vector, n) pentru a rezolva problema dată.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0499_-_Numarare5&amp;diff=4003</id>
		<title>0499 - Numarare5</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0499_-_Numarare5&amp;diff=4003"/>
		<updated>2023-04-22T10:20:55Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/499/numarare5 - Numarare5]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine câte dintre perechile de elemente din vector sunt formate din valori cu aceeași sumă a cifrelor.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează pe ecran &#039;&#039;&#039;numărul C&#039;&#039;&#039;, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 51 842 15 28 77 132&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 4&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
Perechile de elemente cu aceeaşi sumă cifrelor sunt:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;51 15&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;51 132&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;842 77&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;15 132&#039;&#039;&#039;&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0499&lt;br /&gt;
&lt;br /&gt;
def suma_cifrelor(n):&lt;br /&gt;
    suma = 0&lt;br /&gt;
    while n:&lt;br /&gt;
        suma += n % 10&lt;br /&gt;
        n = n//10&lt;br /&gt;
    return suma&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def cate_perechi_cu_aceeasi_suma_cifrelor(vector, n):&lt;br /&gt;
    s = [suma_cifrelor(x) for x in vector]&lt;br /&gt;
    C = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(i+1, n):&lt;br /&gt;
            if s[i] == s[j]:&lt;br /&gt;
                C += 1&lt;br /&gt;
    print(C)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    cate_perechi_cu_aceeasi_suma_cifrelor(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Programul de mai sus face:&amp;lt;br&amp;gt;-&amp;gt; Definirea &#039;&#039;&#039;funcției suma_cifrelor(n)&#039;&#039;&#039; care primește un număr întreg n și calculează suma cifrelor acestuia. Funcția utilizează o buclă while care rulează până când n devine zero, la fiecare iterație extrăgând ultima cifră a lui n folosind operatorul modulo % și adăugând-o la suma suma. După aceea, n este împărțit la 10 folosind operatorul de divizare întreagă // pentru a se trece la următoarea cifră. Suma cifrelor este returnată la final.&amp;lt;br&amp;gt;-&amp;gt; Definirea &#039;&#039;&#039;funcției cate_perechi_cu_aceeasi_suma_cifrelor(vector, n)&#039;&#039;&#039; care primește un vector de numere întregi vector și un număr întreg n reprezentând lungimea vectorului. Funcția calculează suma cifrelor pentru fiecare element din vector utilizând funcția suma_cifrelor() și stochează rezultatele într-un alt vector s. Apoi, folosește două bucle for pentru a compara suma cifrelor a fiecărui element din vectorul s cu suma cifrelor a celorlalte elemente din vector și numără câte perechi au aceeași sumă a cifrelor. Rezultatul este afișat la final cu ajutorul funcției print().&amp;lt;br&amp;gt;-&amp;gt; Definirea &#039;&#039;&#039;funcției citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; care primește un vector vector și un număr n reprezentând lungimea vectorului și verifică dacă acestea respectă anumite restricții. Restricțiile impuse includ: n trebuie să fie între 1 și 200, fiecare element din vector trebuie să fie între 0 și 1000000000, iar lungimea vectorului vector trebuie să fie egală cu n. Dacă oricare dintre restricții nu este respectată, se afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și programul se încheie cu ajutorul funcției exit(). Dacă toate restricțiile sunt respectate, se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se continuă programul.&amp;lt;br&amp;gt;   În &#039;&#039;&#039;secțiunea if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; se citește de la tastatură numărul n și vectorul vector folosind funcția input() și list(map(int, input().split())). Apoi, se apelează funcția citire_conform_restrictiilor(vector, n) pentru a verifica dacă datele introduse respectă restricțiile impuse. În final, se apelează funcția cate_perechi_cu_aceeasi_suma_cifrelor(vector, n) pentru a afișa valoarea cerută în problemă.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4110_-_NumarareSD&amp;diff=4000</id>
		<title>4110 - NumarareSD</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4110_-_NumarareSD&amp;diff=4000"/>
		<updated>2023-04-22T10:10:03Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4110/numararesd 4110 - NumarareSD]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine câte dintre perechile de elemente din vector au aceeași sumă a divizorilor.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează pe ecran &#039;&#039;&#039;numărul c&#039;&#039;&#039;, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 10 3 6 17 9 11&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 2&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
Perechile de elemente cu aceeași sumă a divizorilor sunt:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;10 17&#039;&#039;&#039; – cu suma 18&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;6 11&#039;&#039;&#039; – cu suma 12&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 4110&lt;br /&gt;
&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def suma_divizorilor(n):&lt;br /&gt;
    sumdiv = 0&lt;br /&gt;
    for d in range(1, int(math.sqrt(n))+1):&lt;br /&gt;
        if n % d == 0:&lt;br /&gt;
            sumdiv += d&lt;br /&gt;
            if d != n // d:&lt;br /&gt;
                sumdiv += n // d&lt;br /&gt;
    return sumdiv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def cate_perechi_cu_aceeasi_suma_diviz(vector, n):&lt;br /&gt;
    s = [suma_divizorilor(x) for x in vector]&lt;br /&gt;
    c = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(i+1, n):&lt;br /&gt;
            if s[i] == s[j]:&lt;br /&gt;
                c += 1&lt;br /&gt;
    print(c)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;lt; 1 or x &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    cate_perechi_cu_aceeasi_suma_diviz(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    &#039;&#039;&#039;Funcția suma_divizorilor(n)&#039;&#039;&#039; primește un număr întreg n ca argument și calculează suma divizorilor acestuia. Pentru a face acest lucru, se parcurge un interval de la 1 la radicalul pătrat din n (inclusiv), iar pentru fiecare divizor d al lui n, se adaugă la suma sumdiv valoarea lui d și valoarea lui n // d (dacă d nu este egal cu n // d).&amp;lt;br&amp;gt;   &#039;&#039;&#039;Funcția cate_perechi_cu_aceeasi_suma_diviz(vector, n)&#039;&#039;&#039; primește un vector de numere întregi vector și un număr întreg n reprezentând lungimea vectorului. Această funcție calculează numărul de perechi de indici distincte din vector (i, j), cu i &amp;lt; j, pentru care suma divizorilor elementelor de pe pozițiile i și j din vector este aceeași. Acest lucru se face prin calcularea sumelor divizorilor pentru fiecare element din vector utilizând funcția &#039;&#039;&#039;suma_divizorilor(n)&#039;&#039;&#039;, și apoi compararea acestor sume pentru a identifica perechile cu aceeași sumă de divizori.&amp;lt;br&amp;gt;   &#039;&#039;&#039;Funcția citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; primește un vector de numere vector și un număr n reprezentând lungimea vectorului. Această funcție verifică dacă valorile lui n și ale elementelor din vector respectă anumite restricții impuse (n trebuie să fie între 1 și 1000, iar elementele vectorului trebuie să fie între 1 și 1000000000, n trebuie să fie lungimea vectorului &amp;quot;vector&amp;quot;), și dacă aceste restricții nu sunt îndeplinite afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot; și încheie execuția programului cu ajutorul comenzii exit(), iar dacă ele sunt îndeplinite afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se continuă programul.&amp;lt;br&amp;gt;   În &#039;&#039;&#039;blocul if __name__ == &#039;__main__&#039;:&#039;&#039;&#039; se realizează citirea valorii lui n de la tastatură, citirea vectorului de numere întregi vector de la tastatură, apelul funcției citire_conform_restrictiilor(vector, n) pentru a verifica restricțiile impuse asupra datelor de intrare, și apelul funcției cate_perechi_cu_aceeasi_suma_diviz(vector, n) pentru a calcula și afișa numărul de perechi de indici cu aceeași sumă de divizori, număr ce reprezintă valoarea cerută în problemă.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4105_-_NumarareDiv&amp;diff=3998</id>
		<title>4105 - NumarareDiv</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4105_-_NumarareDiv&amp;diff=3998"/>
		<updated>2023-04-22T10:01:07Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4105/numararediv 4105 - NumarareDiv]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine câte dintre perechile de elemente din vector au același număr de divizori.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează pe ecran &#039;&#039;&#039;numărul c&#039;&#039;&#039;, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1000&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 13 3 8 7 9 25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 4&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
Perechile de elemente cu același număr de divizori sunt:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;13 3&#039;&#039;&#039; – cu câte 2 divizori fiecare&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;13 7&#039;&#039;&#039; – cu câte 2 divizori fiecare&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;3 7&#039;&#039;&#039; – cu câte 2 divizori fiecare&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9 25&#039;&#039;&#039; – cu câte 3 divizori fiecare&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 4105&lt;br /&gt;
&lt;br /&gt;
def numar_divizori(n):&lt;br /&gt;
    divizori = 0&lt;br /&gt;
    for i in range(1, int(n ** 0.5) + 1):&lt;br /&gt;
        if n % i == 0:&lt;br /&gt;
            divizori += 1&lt;br /&gt;
            if i * i != n:&lt;br /&gt;
                divizori += 1&lt;br /&gt;
    return divizori&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def cate_perechi_cu_acelasi_nr_divizori(vector, n):&lt;br /&gt;
    s = [numar_divizori(x) for x in vector]&lt;br /&gt;
    c = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(i+1, n):&lt;br /&gt;
            if s[i] == s[j]:&lt;br /&gt;
                c += 1&lt;br /&gt;
    print(c)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor():&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;lt; 1 or x &amp;gt; 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
    return vector, n&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    vector, n = citire_conform_restrictiilor()&lt;br /&gt;
    cate_perechi_cu_acelasi_nr_divizori(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    &#039;&#039;&#039;Funcția numar_divizori(n)&#039;&#039;&#039; primește un număr întreg n ca argument și returnează numărul de divizori ai acestuia. Pentru a determina acest număr, se utilizează o buclă for care parcurge toate valorile între 1 și rădăcina pătrată a lui n și se verifică dacă n este divizibil cu aceste valori folosind operatorul modulo (%). Dacă n este divizibil cu un anumit număr, atunci se incrementează un contor numit divizori. De asemenea, se adaugă încă un divizor pentru fiecare valoare găsită, cu excepția cazului în care valoarea găsită este chiar rădăcina pătrată a lui n, pentru a evita dublarea divizorului. La final, funcția returnează numărul total de divizori.&amp;lt;br&amp;gt;   &#039;&#039;&#039;Funcția cate_perechi_cu_acelasi_nr_divizori(vector, n)&#039;&#039;&#039; primește un vector de numere întregi vector și un număr întreg n reprezentând lungimea vectorului. Scopul acestei funcții este să numere câte perechi de numere din vector au același număr de divizori. Se folosește o buclă for dublă pentru a compara fiecare pereche posibilă de numere din vector. Dacă numărul de divizori al celor două numere este același, se incrementează un contor numit c. La final, se afișează valoarea contorului.&amp;lt;br&amp;gt;   &#039;&#039;&#039;Funcția citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; primește un vector „vector” și un număr întreg n reprezentând lungimea vectorului și verifică dacă vectorul și lungimea acestuia respectă restricțiile problemei. Restricțiile impuse sunt: n trebuie să fie între 1 și 1000, fiecare element al vectorului trebuie să fie între 1 și 1000000000, iar lungimea vectorului trebuie să fie egală cu n. Dacă una dintre aceste restricții nu este respectată, se afișează „Datele nu corespund restricțiilor impuse.” și programul se încheie folosind funcția exit(). Dacă toate restricțiile sunt respectate, se afișează „Datele sunt introduse corect.”.&amp;lt;br&amp;gt;   La final, în &#039;&#039;&#039;blocul if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;, programul citește de la intrare un număr n, apoi un vector „vector”, și apoi apelează funcțiile citire_conform_restrictiilor(vector, n) și cate_perechi_cu_acelasi_nr_divizori(vector, n) pentru a rezolva problema dată.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0498_-_NumararePIE&amp;diff=3989</id>
		<title>0498 - NumararePIE</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0498_-_NumararePIE&amp;diff=3989"/>
		<updated>2023-04-22T09:26:48Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/498/numararepie - NumararePIE]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţe ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine câte dintre perechile de elemente din vector sunt prime între ele.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează pe ecran &#039;&#039;&#039;numărul C&#039;&#039;&#039;, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 51 18 15 28 77 121&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 9&lt;br /&gt;
&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
Perechile de elemente prime între ele sunt:&amp;lt;br&amp;gt;&lt;br /&gt;
51 28&amp;lt;br&amp;gt;&lt;br /&gt;
51 77&amp;lt;br&amp;gt;&lt;br /&gt;
51 121&amp;lt;br&amp;gt;&lt;br /&gt;
18 77&amp;lt;br&amp;gt;&lt;br /&gt;
18 121&amp;lt;br&amp;gt;&lt;br /&gt;
15 28&amp;lt;br&amp;gt;&lt;br /&gt;
15 77&amp;lt;br&amp;gt;&lt;br /&gt;
15 121&amp;lt;br&amp;gt;&lt;br /&gt;
28 121&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0498&lt;br /&gt;
&lt;br /&gt;
def verificare_prime_intre_ele(nr1, nr2):&lt;br /&gt;
    while nr2 != 0:&lt;br /&gt;
        a = nr1 % nr2&lt;br /&gt;
        nr1 = nr2&lt;br /&gt;
        nr2 = a&lt;br /&gt;
    return nr1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def numarare_perechi_elem_prime_intre_ele(vector, n):&lt;br /&gt;
    C = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(i + 1, n):&lt;br /&gt;
            if verificare_prime_intre_ele(vector[i], vector[j]) == 1:&lt;br /&gt;
                C += 1&lt;br /&gt;
    print(C)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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; 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    numarare_perechi_elem_prime_intre_ele(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Programul de mai sus conține trei funcții, funcția &#039;&#039;&#039;verificare_prime_intre_ele(nr1, nr2)&#039;&#039;&#039;, funcția numarare_perechi_elem_prime_intre_ele(vector, n) și funcția &#039;&#039;&#039;citire_conform_restrictiilor(vector, n)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 34) după citirea numărului n (linia 35) și celor n numere pe care le vom pune în șirul „vector” (linia 36).&amp;lt;br&amp;gt;   După ce am citit elementele, se va apela &#039;&#039;&#039;funcția citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; care primește doi parametri: vectorul „vector” și lungimea sa, reprezentată de variabila „n”. Funcția verifică dacă n este între 1 și 200 (linia 21), dacă elementele vectorului sunt cuprinse între 0 și 1000 (liniile 24, 25) și dacă n este lungimea vectorului „vector” (linia 28). Dacă oricare dintre condiții este încălcată, se va afișa mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 31) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;numarare_perechi_elem_prime_intre_ele(vector, n)&#039;&#039;&#039; care primește ca parametrii vectorul „vector” și dimensiunea sa „n”. În această funcție se inițializează o variabilă C cu 0,  care va fi utilizată pentru a număra perechile de elemente consecutive din vector care sunt prime între ele, apoi se parcurge vectorul utilizând o buclă for. În interiorul primei bucle for, se adaugă o buclă for imbricată care începe de la i + 1 (următorul element din vector după elementul curent) și se termină la n-1 (ultimul element din vector). Aceasta se face pentru a verifica toate perechile de elemente consecutive posibile din vector. Pentru fiecare pereche de elemente consecutive din vector, se apelează &#039;&#039;&#039;funcția verificare_prime_intre_ele(nr1, nr2)&#039;&#039;&#039; pentru a verifica dacă acestea sunt prime între ele. Funcția &#039;&#039;&#039;verificare_prime_intre_ele(nr1, nr2)&#039;&#039;&#039; calculează cel mai mare divizor comun al celor două numere folosind algoritmul lui Euclid (care începe prin a calcula restul împărțirii nr1 la nr2 și se atribuie rezultatul într-o variabilă a (adesea denumită și &amp;quot;restul&amp;quot;), apoi se actualizează valorile celor două numere astfel: nr1 devine nr2 și nr2 devine a. și se repetă acești pași până când a devine 0, și vom avea în final CMMD al celor două numere) și returnează rezultatul. Dacă rezultatul returnat de această funcție este 1 (adică cele două numere nu au niciun divizor comun în afara valorii 1), atunci se consideră că cele două numere sunt prime între ele.&amp;lt;br&amp;gt;-&amp;gt; dacă cele două numere consecutive din vector sunt prime între ele, atunci variabila C este incrementată cu 1;&amp;lt;br&amp;gt;-&amp;gt; la finalul buclei imbricate, se va obține numărul total de perechi de elemente consecutive din vector care sunt prime între ele, stocat în variabila C, pe care o afișăm, ea fiind valoarea cerută în problemă.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0498_-_NumararePIE&amp;diff=3985</id>
		<title>0498 - NumararePIE</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0498_-_NumararePIE&amp;diff=3985"/>
		<updated>2023-04-22T09:07:07Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/498/numararepie - NumararePIE]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţe ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine câte dintre perechile de elemente din vector sunt prime între ele.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou afișează pe ecran &#039;&#039;&#039;numărul C&#039;&#039;&#039;, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 51 18 15 28 77 121&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 9&lt;br /&gt;
&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
Perechile de elemente prime între ele sunt:&amp;lt;br&amp;gt;&lt;br /&gt;
51 28&amp;lt;br&amp;gt;&lt;br /&gt;
51 77&amp;lt;br&amp;gt;&lt;br /&gt;
51 121&amp;lt;br&amp;gt;&lt;br /&gt;
18 77&amp;lt;br&amp;gt;&lt;br /&gt;
18 121&amp;lt;br&amp;gt;&lt;br /&gt;
15 28&amp;lt;br&amp;gt;&lt;br /&gt;
15 77&amp;lt;br&amp;gt;&lt;br /&gt;
15 121&amp;lt;br&amp;gt;&lt;br /&gt;
28 121&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0498&lt;br /&gt;
&lt;br /&gt;
def verificare_prime_intre_ele(nr1, nr2):&lt;br /&gt;
    while nr2 != 0:&lt;br /&gt;
        a = nr1 % nr2&lt;br /&gt;
        nr1 = nr2&lt;br /&gt;
        nr2 = a&lt;br /&gt;
    return nr1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def numarare_perechi_elem_prime_intre_ele(vector, n):&lt;br /&gt;
    C = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(i + 1, n):&lt;br /&gt;
            if verificare_prime_intre_ele(vector[i], vector[j]) == 1:&lt;br /&gt;
                C += 1&lt;br /&gt;
    print(C)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor():&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;lt; 0 or x &amp;gt; 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
    return vector, n&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    vector, n = citire_conform_restrictiilor()&lt;br /&gt;
    numarare_perechi_elem_prime_intre_ele(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0492_-_Numarare3&amp;diff=3983</id>
		<title>0492 - Numarare3</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0492_-_Numarare3&amp;diff=3983"/>
		<updated>2023-04-22T09:00:22Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/492/numarare3 - Numarare3]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine câte dintre perechile de elemente egal depărtate de capetele vectorului sunt prime între ele.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi șirul de &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou &#039;&#039;&#039;numărul c&#039;&#039;&#039;, reprezentând valoarea cerută. În cazul contrar, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 50 18 15 28 35 40&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 2&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0492&lt;br /&gt;
&lt;br /&gt;
def cate_perechi_de_el_egal_departate_prime_intre_ele(vector, n):&lt;br /&gt;
    c = 0&lt;br /&gt;
    for i in range(n // 2):&lt;br /&gt;
        a, b = vector[i], vector[n-i-1]&lt;br /&gt;
        if b == 0:&lt;br /&gt;
            b = a&lt;br /&gt;
        else:&lt;br /&gt;
            while a % b != 0:&lt;br /&gt;
                r = a % b&lt;br /&gt;
                a = b&lt;br /&gt;
                b = r&lt;br /&gt;
        if b == 1:&lt;br /&gt;
            c += 1&lt;br /&gt;
    print(c)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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; 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    cate_perechi_de_el_egal_departate_prime_intre_ele(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;cate_perechi_de_el_egal_departate_prime_intre_ele(vector, n)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(vector, n)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 33) după citirea numărului n (linia 34) și celor n numere pe care le vom pune în șirul „vector” (linia 35).&amp;lt;br&amp;gt;   După ce am citit elementele, se va apela &#039;&#039;&#039;funcția citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; care primește doi parametri: vectorul „vector” și lungimea sa, reprezentată de variabila „n”. Funcția verifică dacă lungimea vectorului n este între 1 și 200 (linia 20), dacă elementele vectorului sunt cuprinse între 0 și 1000 (liniile 23, 24) și dacă n este lungimea vectorului „vector” (linia 27). Dacă oricare dintre condiții este încălcată, se va afișa mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 30) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;cate_perechi_de_el_egal_departate_prime_intre_ele(vector, n)&#039;&#039;&#039; care primește ca parametrii vectorul „vector” și dimensiunea sa „n”.  În interiorul funcției:&amp;lt;br&amp;gt;-&amp;gt; se initializează o variabilă c cu valoarea 0, care va fi folosită pentru a număra câte astfel de perechi sunt găsite în vector;&amp;lt;br&amp;gt;-&amp;gt; se parcurge vectorul utilizând o buclă for care iterează de la 0 la jumătatea numărului total de elemente din vector (n // 2). Aceasta se face pentru a evita să se numere de două ori aceeași pereche de elemente;&amp;lt;br&amp;gt;-&amp;gt; pentru fiecare pereche de elemente consecutive din vector, se extrag valorile celor două elemente în variabilele a și b utilizând indexarea vectorului;&amp;lt;br&amp;gt;-&amp;gt; se verifică dacă b este egal cu 0. Dacă da, atunci b este actualizat cu valoarea lui a, pentru a evita împărțirea la zero ulterior;&amp;lt;br&amp;gt;-&amp;gt; se aplică algoritmul pentru a determina cel mai mare divizor comun dintre a și b. Acesta constă în aplicarea succesivă a restului împărțirii până când restul devine 0. În timpul acestui proces, valorile lui a și b sunt actualizate în consecință;&amp;lt;br&amp;gt;-&amp;gt; se verifică dacă b este egal cu 1. Dacă da, înseamnă că a și b sunt coprime (adică nu au niciun divizor comun în afara valorii 1) și deci numărul de elemente departate între ele este un număr prim. În acest caz, variabila c este incrementată cu 1;&amp;lt;br&amp;gt;-&amp;gt; se afișează valoarea variabilei c la finalul funcției, care reprezintă numărul total de perechi de elemente consecutive din vector care îndeplinesc condițiile specificate în problemă.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2858_-_pv&amp;diff=3980</id>
		<title>2858 - pv</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2858_-_pv&amp;diff=3980"/>
		<updated>2023-04-22T08:43:00Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2858/pv - 2858 - pv]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţe ==&lt;br /&gt;
Se dă un șir cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, &#039;&#039;&#039;numere naturale&#039;&#039;&#039;.&lt;br /&gt;
* Să se afișeze &#039;&#039;&#039;elementele șirului de la dreapta la stânga&#039;&#039;&#039;.&lt;br /&gt;
* Să se calculeze &#039;&#039;&#039;suma valorilor pare din șir&#039;&#039;&#039;.&lt;br /&gt;
* Să se determine &#039;&#039;&#039;suma valorilor aflate pe poziții pare în șir&#039;&#039;&#039;.&lt;br /&gt;
* Să se determine &#039;&#039;&#039;numărul numerelor din șir care sunt divizibile cu 10&#039;&#039;&#039;.&lt;br /&gt;
* Să se determine &#039;&#039;&#039;suma numerelor divizibile cu 3 și aflate pe poziții impare&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi șirul de &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi:&lt;br /&gt;
&amp;lt;br&amp;gt;* pe un rând nou va afișa &#039;&#039;&#039;elementele șirului de la dreapta la stânga&#039;&#039;&#039;;&lt;br /&gt;
&amp;lt;br&amp;gt;* pe un rând nou se va afișa &#039;&#039;&#039;un singur număr reprezentând suma valorilor pare&#039;&#039;&#039;;&lt;br /&gt;
&amp;lt;br&amp;gt;* pe un rând nou se va afișa &#039;&#039;&#039;un singur număr reprezentând suma valorilor aflate pe poziții pare&#039;&#039;&#039; în șir;&lt;br /&gt;
&amp;lt;br&amp;gt;* pe un rând nou se va afișa &#039;&#039;&#039;un singur număr reprezentând numărul numerelor din șir care sunt divizibile cu 10&#039;&#039;&#039;;&lt;br /&gt;
&amp;lt;br&amp;gt;* pe ultimul rând se va afișa &#039;&#039;&#039;un singur număr reprezentând suma numerelor divizibile cu 3 și aflate pe poziții impare&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt; În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 100&lt;br /&gt;
* elementele vectorului vor fi cuprinse &#039;&#039;&#039;între 0 și 100&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 10&lt;br /&gt;
: 1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 10 9 8 7 6 5 4 3 2 1 &lt;br /&gt;
: 30&lt;br /&gt;
: 30&lt;br /&gt;
: 1&lt;br /&gt;
: 12&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 10 2 -3 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 2858&lt;br /&gt;
&lt;br /&gt;
def afisare_vector_invers(vector, n):&lt;br /&gt;
    for i in range(n-1, -1, -1):&lt;br /&gt;
        print(vector[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
    print()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def afisare_suma_val_pare(vector, n):&lt;br /&gt;
    suma_val_pare = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if vector[i] % 2 == 0:&lt;br /&gt;
            suma_val_pare += vector[i]&lt;br /&gt;
    print(suma_val_pare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def afisare_suma_poz_pare(vector, n):&lt;br /&gt;
    suma_poz_pare = 0&lt;br /&gt;
    # vectorul începe de la 0, așadar pozițiile pare vor fi cele impare în cazul acesta&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if i % 2 != 0:&lt;br /&gt;
            suma_poz_pare += vector[i]&lt;br /&gt;
    print(suma_poz_pare)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def afisare_nr_el_div_10(vector, n):&lt;br /&gt;
    nr_el_div_10 = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if vector[i] % 10 == 0:&lt;br /&gt;
            nr_el_div_10 += 1&lt;br /&gt;
    print(nr_el_div_10)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def afisare_suma_poz_imp_div_3(vector, n):&lt;br /&gt;
    suma_poz_imp_div_3 = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if vector[i] % 3 == 0 and i % 2 != 1:&lt;br /&gt;
            suma_poz_imp_div_3 += vector[i]&lt;br /&gt;
    print(suma_poz_imp_div_3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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 corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    afisare_vector_invers(vector, n)&lt;br /&gt;
    afisare_suma_val_pare(vector, n)&lt;br /&gt;
    afisare_suma_poz_pare(vector, n)&lt;br /&gt;
    afisare_nr_el_div_10(vector, n)&lt;br /&gt;
    afisare_suma_poz_imp_div_3(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Programul de mai sus este împărțit în mai multe funcții care efectuează operațiile date în problemă asupra vectorului de numere.&amp;lt;br&amp;gt;-&amp;gt; &#039;&#039;&#039;Funcția afisare_vector_invers(vector, n)&#039;&#039;&#039; primește ca parametri vectorul „vector” și numărul de elemente din vector (n) și afișează elementele vectorului în ordine inversă, de la ultimul element la primul, cu ajutorul unui for loop (linia 4);&amp;lt;br&amp;gt;-&amp;gt; &#039;&#039;&#039;Funcția afisare_suma_val_pare(vector, n)&#039;&#039;&#039; primește ca parametri un vector „vector” și numărul de elemente din vector (n) și calculează și afișează suma tuturor valorilor pare din vector (parcurgem vectorul cu ajutorul unui for loop, linia 11, și verificăm dacă elementele sunt pare, iar dacă da, le adăugăm în variabila suma_val_pare, care a fost inițializată cu 0 înainte de for loop, linia 10) și la final afișăm suma_val_pare;&amp;lt;br&amp;gt;-&amp;gt; &#039;&#039;&#039;Funcția afisare_suma_poz_pare(vector, n)&#039;&#039;&#039; primește ca parametri un vector „vector” și numărul de elemente din vector (n) și calculează și afișează suma valorilor din pozițiile pare (indexuri impare vor fi pare deoarece la noi vectorul începe de la 0, nu de la 1) din vector. Acest lucru se realizează prin parcurgerea vectorului și adunarea valorilor aflate pe poziții impare (care sunt pare dacă se începe de pe poziția 1), pe care le adunăm în variabila suma_poz_pare și o afișăm la final;&amp;lt;br&amp;gt;-&amp;gt; &#039;&#039;&#039;Funcția afisare_nr_el_div_10(vector, n)&#039;&#039;&#039; primește ca parametri un vector „vector” și numărul de elemente din vector (n) și calculează și afișează numărul de elemente din vector care sunt divizibile cu 10 în variabila nr_el_div_10, inițializată cu 0 la început. Calcularea acestei valori se face prin a parcurge vectorul cu un for loop și se verifică dacă numărul este divizibil cu 10 cu ajutorul operatorului % (de exemplu, dacă element % 10 este diferit de 0, înseamnă cu numărul nu este divizibil cu 10) și adunăm 1 în variabila nr_el_div_10 de fiecare dată când descoperim un element divizibil cu 10, apoi după finalizarea parcurgerii, afișăm aceasta valoare;&amp;lt;br&amp;gt;-&amp;gt; &#039;&#039;&#039;Funcția afisare_suma_poz_imp_div_3(vector, n)&#039;&#039;&#039; primește ca parametri un vector „vector” și numărul de elemente din vector (n) și calculează și afișează suma valorilor din pozițiile impare (la noi cele pare deoarece începem vectorul de la 0, nu 1) din vector care sunt divizibile cu 3. Acest număr va fi calculat în variabila suma_poz_imp_div_3 pe care o inițializăm cu 0 la început, apoi parcurgem vectorul și verificăm pentru fiecare element dacă este divizibil cu 3 cu ajutorul operatorului % și dacă poziția sa este pară (pentru a obține pozițiile impare, noi începem vectorul de la 0, așadar cele două vor fi inversate), iar dacă ambele condiții sunt îndeplinite se adaugă elementul respectiv în variabila suma_poz_imp_div_3, care după parcurgerea întregului vector va avea valoarea cerută;&amp;lt;br&amp;gt;-&amp;gt; &#039;&#039;&#039;Funcția citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; primește ca parametri un vector „vector” și numărul de elemente din vector (n) și verifică dacă vectorul și numărul de elemente din vector respectă restricțiile impuse. Aceste restricții includ ca numărul de elemente din vector să fie între 1 și 100, valorile din vector să fie între 0 și 100 și numărul de elemente din vector să fie egal cu n. Dacă restricțiile nu sunt respectate, programul afișează „Datele nu corespund restricțiilor impuse.” și se încheie prin apelul funcției exit(). Dacă restricțiile sunt respectate, se afișează un mesajul „Datele sunt introduse corect.” (linia 55);&amp;lt;br&amp;gt;-&amp;gt; &#039;&#039;&#039;În secțiunea if __name__ == &#039;__main__&#039;:&#039;&#039;&#039;, programul începe prin citirea numărului de elemente din vector (n) de la tastatură folosind funcția input() și convertirea acestuia la un număr întreg utilizând funcția int() (linia 57). Apoi, vectorul este citit de la tastatură ca o listă de numere întregi utilizând funcția input() și funcția split() care separă valorile citite în funcție de spații și le transformă într-o listă de șiruri de caractere. Apoi, utilizând funcția map() împreună cu funcția int(), lista de șiruri de caractere este convertită într-o listă de numere întregi. Apoi, tot în main, se apelează toate funcțiile de mai sus și se va obține rezultatul conform problemei.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0986_-_Numarare7&amp;diff=3970</id>
		<title>0986 - Numarare7</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0986_-_Numarare7&amp;diff=3970"/>
		<updated>2023-04-22T07:57:31Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/986/numarare7 - Numarare7]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un șir cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, &#039;&#039;&#039;numere reale&#039;&#039;&#039;. Să se determine câte dintre elemente se află în afara intervalului închis determinat de primul și ultimul element.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere reale, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa numărul &#039;&#039;&#039;C&#039;&#039;&#039;, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între -1000 și 1000&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 2 0.5 4 -1 -8 -3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 2&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
: Elementele șirului aflate în afara intervalului &#039;&#039;&#039;[-3,2]&#039;&#039;&#039; sunt: &#039;&#039;&#039;4&#039;&#039;&#039; și &#039;&#039;&#039;-8&#039;&#039;&#039;.&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 201&lt;br /&gt;
: 1 2 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0986 Numarare7&lt;br /&gt;
&lt;br /&gt;
def nr_elem_aflate_inafara_interv_inchis_primul_ultimul(vector):&lt;br /&gt;
    temp1 = vector[0]&lt;br /&gt;
    temp2 = vector[-1]&lt;br /&gt;
    if temp2 &amp;lt; temp1:&lt;br /&gt;
        temp1, temp2 = temp2, temp1&lt;br /&gt;
    C = sum(1 for elem in vector if elem &amp;gt; temp2 or elem &amp;lt; temp1)&lt;br /&gt;
    print(C)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;lt; -1000 or x &amp;gt; 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
    return vector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(float, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    nr_elem_aflate_inafara_interv_inchis_primul_ultimul(vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;nr_elem_aflate_inafara_interv_inchis_primul_ultimul(vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(vector, n)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 27) după citirea numărului n (linia 28) și celor n numere reale pe care le vom pune în șirul „vector” (linia 29).&amp;lt;br&amp;gt;   După ce am citit elementele, se va apela &#039;&#039;&#039;funcția citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; care primește doi parametri: vectorul „vector” și lungimea sa, reprezentată de variabila „n”. Funcția verifică dacă lungimea vectorului n este între 1 și 200 (linia 13), dacă elementele vectorului sunt cuprinse între -1000 și 1000 (liniile 16, 17) și dacă n este lungimea vectorului „vector” (linia 20). Dacă oricare dintre condiții este încălcată, se va afișa mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 34) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;nr_elem_aflate_inafara_interv_inchis_primul_ultimul(vector)&#039;&#039;&#039; care primește ca parametrii vectorul „vector” și dimensiunea sa „n”, apoi:&amp;lt;br&amp;gt;-&amp;gt; inițializează două variabile, temp1 și temp2, cu primul, respectiv ultimul element din vector (liniile 4, 5). Aceste variabile vor fi utilizate pentru a reține valorile primului și ultimului element din vector, astfel încât să se poată determina intervalul închis format de acestea;&amp;lt;br&amp;gt;-&amp;gt; verifică dacă ultimul element din vector, reprezentat de temp2, este mai mic decât primul element din vector , reprezentat de temp1 (linia 6). Dacă da, inversează valorile celor două variabile temporare (linia 7), astfel încât temp1 să rețină valoarea ultimului element și temp2 să rețină valoarea primului element;&amp;lt;br&amp;gt;-&amp;gt; utilizează o expresie generator (sum(1 for elem in vector if elem &amp;gt; temp2 or elem &amp;lt; temp1)) pentru a parcurge vectorul și pentru fiecare element din vector care este mai mare decât temp2 sau mai mic decât temp1, adaugă 1 la o variabilă C. Expresia generator calculează efectiv numărul de elemente care se află în afara intervalului închis definit de primul și ultimul element din vector;&amp;lt;br&amp;gt;-&amp;gt; afișează valoarea lui C pe ecran, valoare cerută de problemă.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0491_-_Suma2&amp;diff=3966</id>
		<title>0491 - Suma2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0491_-_Suma2&amp;diff=3966"/>
		<updated>2023-04-22T07:48:50Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Exemplul 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/491/suma2 - Suma2]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citește un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, numere naturale. Să se determine suma valorilor elementelor cuprinse între primul și ultimul element par al vectorului, inclusiv acestea.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa numărul &#039;&#039;&#039;S&#039;&#039;&#039;, reprezentând suma calculată. Dacă în vector nu există niciun element par, &#039;&#039;&#039;în loc de suma S&#039;&#039;&#039; se va afișa &#039;&#039;&#039;&amp;quot;Nu există niciun număr par.&amp;quot;&#039;&#039;&#039;. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000&lt;br /&gt;
* elementele vectorului vor fi mai mici decât &#039;&#039;&#039;100.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 7 6 1 2 8&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 17&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
: 17 = 6 + 1 + 2 + 8&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 1 2 5 7 9 11&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 2&lt;br /&gt;
===Explicație exemplul 2===&lt;br /&gt;
: Deși există doar un element par în vector, el este și primul și ultimul, așadar rezultatul va fi 2.&lt;br /&gt;
===Exemplul 3===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3&lt;br /&gt;
: 3 5 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: Nu există niciun număr par.&lt;br /&gt;
===Exemplul 4===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234&lt;br /&gt;
: 1 2 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0491 - Suma2&lt;br /&gt;
&lt;br /&gt;
def suma_elem_dintre_primul_elem_par_si_ultimul(vector, n):&lt;br /&gt;
    a, b = -1, -1&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if vector[i] % 2 == 0:&lt;br /&gt;
            if a == -1:&lt;br /&gt;
                a = i&lt;br /&gt;
            b = i&lt;br /&gt;
    if a != -1:&lt;br /&gt;
        S = sum(vector[a:b + 1])&lt;br /&gt;
        print(S)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Nu există niciun număr par.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;gt;= 100000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    suma_elem_dintre_primul_elem_par_si_ultimul(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;suma_elem_dintre_primul_elem_par_si_ultimul(vector, n)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 31) după citirea numărului n (linia 32) și celor n numere pe care le vom pune în șirul „vector” (linia 33).&amp;lt;br&amp;gt;   După ce am citit elementele, se va apela &#039;&#039;&#039;funcția citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: numărul n și cele n numere pe care le punem în vectorul „vector”. Funcția verifică dacă n este între 1 și 1000 (linia 18), dacă elementele vectorului sunt mai mici decât 100000 (liniile 21, 22) și dacă n este lungimea vectorului „vector” (linia 25). Dacă oricare dintre condiții este încălcată, se va afișa mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 28) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;suma_elem_dintre_primul_elem_par_si_ultimul(vector, n)&#039;&#039;&#039; care primește ca parametrii vectorul „vector” și dimensiunea sa „n”. În această funcție se inițializează a și b, cu valoarea -1. Aceste variabile vor fi utilizate pentru a reține poziția primului și ultimului element par din vector. Apoi, parcurgem vectorul folosind un ciclu for (linia 5), iar pentru fiecare element verifică dacă este un număr par, folosind operatorul de modulo % care calculează restul împărțirii la 2. Dacă restul este 0, înseamnă că elementul este par. Dacă un element par este găsit, se verifică dacă a are valoarea -1, ceea ce indică faptul că este primul element par găsit. Dacă da, a va fi actualizat cu poziția acestui element. În mod similar, variabila b va fi actualizată la fiecare pas cu poziția ultimului element par găsit, astfel încât, la finalul parcurgerii vectorului, b va reține poziția ultimului element par din vector. După parcurgerea întregului vector, verificăm dacă s-au găsit cel puțin un element par în vector, verificând dacă a are o valoare diferită de -1. Dacă da, calculează suma elementelor din vector începând de la poziția a și până la poziția b + 1, folosind funcția predefinită sum() și o afișează pe ecran. Dacă nu există niciun element par în vector, afișează mesajul &amp;quot;Nu există niciun număr par.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0487_-_Numarare2&amp;diff=3965</id>
		<title>0487 - Numarare2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0487_-_Numarare2&amp;diff=3965"/>
		<updated>2023-04-22T07:48:27Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/487/numarare2 - Numarare2]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine câte dintre elemente au valoarea strict mai mare decât media aritmetică a elementelor vectorului.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa numărul &#039;&#039;&#039;C&#039;&#039;&#039;, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 5 0 2 1 4&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 2&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
: Media aritmetică a elementelor este &#039;&#039;&#039;2.4&#039;&#039;&#039;. În vector sunt &#039;&#039;&#039;2&#039;&#039;&#039; elemente cu valoarea strict mai mare decât &#039;&#039;&#039;2.4&#039;&#039;&#039;: &#039;&#039;&#039;5 4&#039;&#039;&#039;&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234&lt;br /&gt;
: 1 2 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
# 0487 Numarare2&lt;br /&gt;
&lt;br /&gt;
def nr_elem_cu_val_strict_mai_mare_decat_media_aritm(vector, n):&lt;br /&gt;
    suma = sum(vector)&lt;br /&gt;
    medie = suma / n&lt;br /&gt;
    C = sum(1 for x in vector if x &amp;gt; medie)&lt;br /&gt;
    print(C)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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; 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    nr_elem_cu_val_strict_mai_mare_decat_media_aritm(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;nr_elem_cu_val_strict_mai_mare_decat_media_aritm(vector, n)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(vector, n)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 24) după citirea numărului n (linia 25) și celor n numere pe care le vom pune în șirul „vector” (linia 26).&amp;lt;br&amp;gt;   După ce am citit elementele, se va apela &#039;&#039;&#039;funcția citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; care primește doi parametri: vectorul „vector” și lungimea sa, reprezentată de variabila „n”. Funcția verifică dacă lungimea vectorului n este între 1 și 200 (linia 11), dacă elementele vectorului sunt cuprinse între 0 și 1000 (liniile 14, 15) și dacă n este lungimea vectorului „vector” (linia 18). Dacă oricare dintre condiții este încălcată, se va afișa mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 21) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;nr_elem_cu_val_strict_mai_mare_decat_media_aritm(vector, n)&#039;&#039;&#039; care primește ca parametrii vectorul „vector” și dimensiunea sa „n”. Funcția începe prin a calcula suma tuturor elementelor din vector folosind funcția predefinită sum() (linia 4), și o stochează în variabila suma, apoi într-o altă variabilă medie calculează media aritmetică a elementelor din vector împărțind suma calculată anterior la lungimea vectorului (n) și o stochează în variabila medie. Folosind o expresie generator (sum(1 for x in vector if x &amp;gt; medie)), parcurgem vectorul și pentru fiecare element care are o valoare mai mare sau egală cu media aritmetică, adăugăm 1 la valoarea lui C (variabilă denumită conform problemei). Expresia generator calculează efectiv numărul de elemente care satisfac condiția dată, conform problemei, apoi afișează valoarea lui C pe ecran.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0487_-_Numarare2&amp;diff=3964</id>
		<title>0487 - Numarare2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0487_-_Numarare2&amp;diff=3964"/>
		<updated>2023-04-22T07:45:56Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/487/numarare2 - Numarare2]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine câte dintre elemente au valoarea strict mai mare decât media aritmetică a elementelor vectorului.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa numărul &#039;&#039;&#039;C&#039;&#039;&#039;, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 200&lt;br /&gt;
* elementele vectorului vor fi cuprinse între &#039;&#039;&#039;0&#039;&#039;&#039; și &#039;&#039;&#039;1.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 5 0 2 1 4&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 2&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
: Media aritmetică a elementelor este &#039;&#039;&#039;2.4&#039;&#039;&#039;. În vector sunt &#039;&#039;&#039;2&#039;&#039;&#039; elemente cu valoarea strict mai mare decât &#039;&#039;&#039;2.4&#039;&#039;&#039;: &#039;&#039;&#039;5 4&#039;&#039;&#039;&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
# 0487 Numarare2&lt;br /&gt;
&lt;br /&gt;
def nr_elem_cu_val_strict_mai_mare_decat_media_aritm(vector, n):&lt;br /&gt;
    suma = sum(vector)&lt;br /&gt;
    medie = suma / n&lt;br /&gt;
    C = sum(1 for x in vector if x &amp;gt; medie)&lt;br /&gt;
    print(C)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(vector, n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 200:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund 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; 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(vector, n)&lt;br /&gt;
    nr_elem_cu_val_strict_mai_mare_decat_media_aritm(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;nr_elem_cu_val_strict_mai_mare_decat_media_aritm(vector, n)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(vector, n)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 24) după citirea numărului n (linia 25) și celor n numere pe care le vom pune în șirul „vector” (linia 26).&amp;lt;br&amp;gt;   După ce am citit elementele, se va apela &#039;&#039;&#039;funcția citire_conform_restrictiilor(vector, n)&#039;&#039;&#039; care primește doi parametri: vectorul „vector” și lungimea sa, reprezentată de variabila „n”. Funcția verifică dacă lungimea vectorului n este între 1 și 200 (linia 11), dacă elementele vectorului sunt cuprinse între 0 și 1000 (liniile 14, 15) și dacă n este lungimea vectorului „vector” (linia 18). Dacă oricare dintre condiții este încălcată, se va afișa mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 21) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;nr_elem_cu_val_strict_mai_mare_decat_media_aritm(vector, n)&#039;&#039;&#039; care primește ca parametrii vectorul „vector” și dimensiunea sa „n”. Funcția începe prin a calcula suma tuturor elementelor din vector folosind funcția predefinită sum() (linia 4), și o stochează în variabila suma, apoi într-o altă variabilă medie calculează media aritmetică a elementelor din vector împărțind suma calculată anterior la lungimea vectorului (n) și o stochează în variabila medie. Folosind o expresie generator (sum(1 for x in vector if x &amp;gt; medie)), parcurgem vectorul și pentru fiecare element care are o valoare mai mare sau egală cu media aritmetică, adăugăm 1 la valoarea lui C (variabilă denumită conform problemei). Expresia generator calculează efectiv numărul de elemente care satisfac condiția dată, conform problemei, apoi afișează valoarea lui C pe ecran.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0491_-_Suma2&amp;diff=3960</id>
		<title>0491 - Suma2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0491_-_Suma2&amp;diff=3960"/>
		<updated>2023-04-22T07:33:16Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/491/suma2 - Suma2]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citește un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, numere naturale. Să se determine suma valorilor elementelor cuprinse între primul și ultimul element par al vectorului, inclusiv acestea.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa numărul &#039;&#039;&#039;S&#039;&#039;&#039;, reprezentând suma calculată. Dacă în vector nu există niciun element par, &#039;&#039;&#039;în loc de suma S&#039;&#039;&#039; se va afișa &#039;&#039;&#039;&amp;quot;Nu există niciun număr par.&amp;quot;&#039;&#039;&#039;. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 1.000&lt;br /&gt;
* elementele vectorului vor fi mai mici decât &#039;&#039;&#039;100.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 7 6 1 2 8&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 17&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
: 17 = 6 + 1 + 2 + 8&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 1 2 5 7 9 11&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 2&lt;br /&gt;
===Explicație exemplul 2===&lt;br /&gt;
: Deși există doar un element par în vector, el este și primul și ultimul, așadar rezultatul va fi 2.&lt;br /&gt;
===Exemplul 3===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3&lt;br /&gt;
: 3 5 7&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: Nu există niciun număr par.&lt;br /&gt;
===Exemplul 4===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0491 - Suma2&lt;br /&gt;
&lt;br /&gt;
def suma_elem_dintre_primul_elem_par_si_ultimul(vector, n):&lt;br /&gt;
    a, b = -1, -1&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if vector[i] % 2 == 0:&lt;br /&gt;
            if a == -1:&lt;br /&gt;
                a = i&lt;br /&gt;
            b = i&lt;br /&gt;
    if a != -1:&lt;br /&gt;
        S = sum(vector[a:b + 1])&lt;br /&gt;
        print(S)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Nu există niciun număr par.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for x in vector:&lt;br /&gt;
        if x &amp;gt;= 100000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    suma_elem_dintre_primul_elem_par_si_ultimul(vector, n)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;suma_elem_dintre_primul_elem_par_si_ultimul(vector, n)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 31) după citirea numărului n (linia 32) și celor n numere pe care le vom pune în șirul „vector” (linia 33).&amp;lt;br&amp;gt;   După ce am citit elementele, se va apela &#039;&#039;&#039;funcția citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: numărul n și cele n numere pe care le punem în vectorul „vector”. Funcția verifică dacă n este între 1 și 1000 (linia 18), dacă elementele vectorului sunt mai mici decât 100000 (liniile 21, 22) și dacă n este lungimea vectorului „vector” (linia 25). Dacă oricare dintre condiții este încălcată, se va afișa mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 28) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;suma_elem_dintre_primul_elem_par_si_ultimul(vector, n)&#039;&#039;&#039; care primește ca parametrii vectorul „vector” și dimensiunea sa „n”. În această funcție se inițializează a și b, cu valoarea -1. Aceste variabile vor fi utilizate pentru a reține poziția primului și ultimului element par din vector. Apoi, parcurgem vectorul folosind un ciclu for (linia 5), iar pentru fiecare element verifică dacă este un număr par, folosind operatorul de modulo % care calculează restul împărțirii la 2. Dacă restul este 0, înseamnă că elementul este par. Dacă un element par este găsit, se verifică dacă a are valoarea -1, ceea ce indică faptul că este primul element par găsit. Dacă da, a va fi actualizat cu poziția acestui element. În mod similar, variabila b va fi actualizată la fiecare pas cu poziția ultimului element par găsit, astfel încât, la finalul parcurgerii vectorului, b va reține poziția ultimului element par din vector. După parcurgerea întregului vector, verificăm dacă s-au găsit cel puțin un element par în vector, verificând dacă a are o valoare diferită de -1. Dacă da, calculează suma elementelor din vector începând de la poziția a și până la poziția b + 1, folosind funcția predefinită sum() și o afișează pe ecran. Dacă nu există niciun element par în vector, afișează mesajul &amp;quot;Nu există niciun număr par.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1550_-_DivFactorial&amp;diff=3499</id>
		<title>1550 - DivFactorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1550_-_DivFactorial&amp;diff=3499"/>
		<updated>2023-04-13T13:50:26Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/1550/divfactorial 1550 - DivFactorial] ---- == Cerinţa == Se da un vector cu &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; elemente. Sa se afișeze pe ecran elementele din vector care divid factorialul numărului de elemente &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;. == Date de intrare == Programul citește de la tastatură numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar apoi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale, separate prin spații. == Date de ieșire ==  Dacă datele sunt introduse corect, pe ecran se va afișa:  &amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele sunt introduse co...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1550/divfactorial 1550 - DivFactorial]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se da un vector cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente. Sa se afișeze pe ecran elementele din vector care divid factorialul numărului de elemente &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi pe un rând nou va afișa pe ecran elementele din vector care divid factorialul numărului de elemente n. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; 12&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
* pentru toate testele va exista cel puțin un element al vectorului care divide &#039;&#039;&#039;n!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 16 3 71 30 25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 3 30&lt;br /&gt;
===Explicație exemplul 1===&lt;br /&gt;
: Factorialul numărului de elemente &#039;&#039;&#039;n&#039;&#039;&#039; este &#039;&#039;&#039;120&#039;&#039;&#039;. Elementele din vector care îl divid pe &#039;&#039;&#039;120&#039;&#039;&#039; sunt &#039;&#039;&#039;3&#039;&#039;&#039; și &#039;&#039;&#039;30&#039;&#039;&#039;.&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 13&lt;br /&gt;
: 1 2 3 4 5 6 7 8 9 10 11 12 13&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 1550 DivFactorial&lt;br /&gt;
&lt;br /&gt;
def factorial(n):&lt;br /&gt;
    if n == 0 or n == 1:&lt;br /&gt;
        return 1&lt;br /&gt;
    else:&lt;br /&gt;
        return n * factorial(n-1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def afis_elem_div_cu_n_factorial(vector):&lt;br /&gt;
    factorial_n = factorial(n)&lt;br /&gt;
    elemente_divizibile = []&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if factorial_n % element == 0:&lt;br /&gt;
            elemente_divizibile.append(element)&lt;br /&gt;
    print(&#039; &#039;.join(map(str, elemente_divizibile)))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 12:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;gt;= 1000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    afis_elem_div_cu_n_factorial(vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    În blocul &#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;: se efectuează citirea de la tastatură a valorilor pentru n și vector (liniile 34, 35), apoi se apelează funcția citire_conform_restrictiilor() pentru a verifica conformitatea datelor introduse cu restricțiile impuse. Apoi, se apelează funcția afis_elem_div_cu_n_factorial() pentru a calcula și afișa elementele din vector care divid factorialul numărului n citit.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;factorial(n)&#039;&#039;&#039; primește un argument n și calculează factorialul acestuia folosind o implementare recursivă. Dacă n este 0 sau 1, se returnează 1, altfel se returnează n multiplicat cu factorialul lui n-1. Aceasta este o implementare obișnuită a formulei matematice pentru factorial.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;afis_elem_div_cu_n_factorial(vector)&#039;&#039;&#039; primește ca argument un vector de numere și calculează factorialul numărului n citit anterior (presupus a fi definit global), apoi parcurge vectorul de numere și afișează elementele care divid acest factorial. Elementele care divid factorialul sunt adăugate într-o listă elemente_divizibile utilizând un loop for și operatorul de modulo % pentru a verifica dacă un număr este divizibil cu factorialul calculat. La final, lista de elemente este afișată utilizând funcția print(), metoda join() pentru a le separa prin spații și funcția map() pentru a le converti în string-uri.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; primește ca argumente n și vector și verifică dacă valorile acestora sunt conforme cu restricțiile impuse de problema. Dacă n nu se află în intervalul [1, 12], sau cel puțin un element din vector este mai mare sau egal cu 1.000.000, sau numărul de elemente din vector nu este egal cu n, atunci se afișează &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;. și se încheie execuția programului utilizând funcția exit(). Altfel, se afișează &amp;quot;Datele sunt introduse corect.&amp;quot; și se continuă programul conform main-ului.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0248_-_Pozitie&amp;diff=3498</id>
		<title>0248 - Pozitie</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0248_-_Pozitie&amp;diff=3498"/>
		<updated>2023-04-13T13:33:08Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/248/pozitie 0248 - Pozitie] ---- == Cerinţa == Se dă un şir cu &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale distincte două câte două. Să se determine poziţia pe care s-ar afla primul element al şirului în şirul sortat. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;pozitie.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;. Urmează &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale, dispuse pe mai multe linii, separate prin spaţii. == Date de ieșire ==  Dacă datele sunt intr...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/248/pozitie 0248 - Pozitie]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un şir cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale distincte două câte două. Să se determine poziţia pe care s-ar afla primul element al şirului în şirul sortat.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;pozitie.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;. Urmează &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, dispuse pe mai multe linii, 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire pozitie.out va conţine pe prima linie numărul p, reprezentând poziţia în şirul sortat a primului element din şirul dat. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n ≤ 10000&#039;&#039;&#039;&lt;br /&gt;
* elementele şirului vor avea cel mult &#039;&#039;&#039;9&#039;&#039;&#039; cifre&lt;br /&gt;
* numerotarea elementelor se face de la &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; pozitie.in&lt;br /&gt;
: 6&lt;br /&gt;
: 267 13 45 628 7 79&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; pozitie.out&lt;br /&gt;
: 5&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; pozitie.in&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0248&lt;br /&gt;
&lt;br /&gt;
def afisare_pozitia_prim_elem_daca_sortat(vector):&lt;br /&gt;
    vector_sortat = sorted(vector)&lt;br /&gt;
    pozitie = vector_sortat.index(vector[0]) + 1&lt;br /&gt;
    with open(&#039;pozitie.out&#039;, &#039;w&#039;) as fisier_iesire:&lt;br /&gt;
        fisier_iesire.write(str(pozitie) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 10000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;gt;= 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;pozitie.in&#039;, &#039;r&#039;) as fisier_intrare:&lt;br /&gt;
        n = int(fisier_intrare.readline().strip())&lt;br /&gt;
        vector = list(map(int, fisier_intrare.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    afisare_pozitia_prim_elem_daca_sortat(vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;afisare_pozitia_prim_elem_daca_sortat(vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 24) după citirea numărului n (linia 26) și celor n numere pe care le vom pune în șirul „vector” (linia 27), pe care le citim prin deschiderea fișierului pozitie.in (linia 25).&amp;lt;br&amp;gt;   După ce am citit toate datele de intrare, se va apela funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: n și vector. Funcția verifică n între 1 și 10000 (linia 11), dacă elementele vectorului „vector” sunt mai mici decât 1000000000 (liniile 14, 15, elementele trebuie să fie aibă cel mult 9 cifre) și dacă n este lungimea vectorului „vector” (linia 18). Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 21) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;afisare_pozitia_prim_elem_daca_sortat(vector)&#039;&#039;&#039; care primește ca parametrii numărul n și vectorul „vector”. Funcția sortează vectorul utilizând funcția implicită Python sorted() (linia 4), determină poziția primului element în șirul sortat utilizând metoda index() (tot metodă implicită Python, linia 5, 0 este poziția primului element în vectorul nostru, iar după ce aflăm indicele în vectorul sortat, îi adăugam 1 pentru a avea valoarea dacă vectorul începe de la 1), și apoi scrie rezultatul în fișierul de ieșire &#039;pozitie.out&#039; utilizând funcția write().&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0238_-_Zone&amp;diff=3497</id>
		<title>0238 - Zone</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0238_-_Zone&amp;diff=3497"/>
		<updated>2023-04-13T13:17:05Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/238/zone 0238 - Zone] ---- == Cerinţa == Se dă un număr natural &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; şi un tablou unidimensional cu &amp;#039;&amp;#039;&amp;#039;3*n&amp;#039;&amp;#039;&amp;#039; elemente, numere naturale cu cel mult 4 cifre. Tabloul este împărţit în trei zone, cu câte n elemente: prima zonă conţine primele n elemente din tablou, a doua zonă conţine următoarele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; elemente din tablou, restul elementelor fiind în zona a treia.&amp;lt;br&amp;gt;Se cere interschimbarea primulul element par (dacă ex...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/238/zone 0238 - Zone]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &#039;&#039;&#039;n&#039;&#039;&#039; şi un tablou unidimensional cu &#039;&#039;&#039;3*n&#039;&#039;&#039; elemente, numere naturale cu cel mult 4 cifre. Tabloul este împărţit în trei zone, cu câte n elemente: prima zonă conţine primele n elemente din tablou, a doua zonă conţine următoarele &#039;&#039;&#039;n&#039;&#039;&#039; elemente din tablou, restul elementelor fiind în zona a treia.&amp;lt;br&amp;gt;Se cere interschimbarea primulul element par (dacă există) al zonei &#039;&#039;&#039;unu&#039;&#039;&#039; cu ultimul element impar (dacă există) al zonei &#039;&#039;&#039;trei&#039;&#039;&#039;. În cazul în care unul dintre elementele care urmează a fi interschimbate nu există, tabloul rămâne nemodificat.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;zone.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe a doua linie &#039;&#039;&#039;3*n&#039;&#039;&#039; numere naturale separate prin spaţii, reprezentând elementele tabloului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire zone.out va conţine pe prima linie elementele tabloului, după interschimbarea cerută, separate prin exact un spaţiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n ≤ 100&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; zone.in&lt;br /&gt;
: 3&lt;br /&gt;
: 1 2 3 4 5 6 7 8 9&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; zone.out&lt;br /&gt;
: 1 9 3 4 5 6 7 8 2 &lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; zone.in&lt;br /&gt;
: 0&lt;br /&gt;
: 1 2 3&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0238 zone&lt;br /&gt;
&lt;br /&gt;
def interschimba_elemente(n, vector):&lt;br /&gt;
    primul_par = None&lt;br /&gt;
    ultimul_impar = None&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if vector[i] % 2 == 0 and primul_par is None:&lt;br /&gt;
            primul_par = i&lt;br /&gt;
        if vector[3 * n - 1 - i] % 2 != 0 and ultimul_impar is None:&lt;br /&gt;
            ultimul_impar = 3 * n - 1 - i&lt;br /&gt;
    if primul_par is not None and ultimul_impar is not None:&lt;br /&gt;
        vector[primul_par], vector[ultimul_impar] = vector[ultimul_impar], vector[primul_par]&lt;br /&gt;
    with open(&#039;zone.out&#039;, &#039;w&#039;) as fisier_iesire:&lt;br /&gt;
        fisier_iesire.write(&#039; &#039;.join(map(str, vector)) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if 3 * n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;zone.in&#039;, &#039;r&#039;) as fisier_intrare:&lt;br /&gt;
        n = int(fisier_intrare.readline().strip())&lt;br /&gt;
        vector = list(map(int, fisier_intrare.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    interschimba_elemente(n, vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;interschimba_elemente(n, vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 27) după citirea numărului n (linia 29) și celor 3*n numere pe care le vom pune în șirul „vector” (linia 30), pe care le citim prin deschiderea fișierului maxsim.in (linia 28).&amp;lt;br&amp;gt;   După ce am citit toate datele de intrare, se va apela funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: n și vector. Funcția verifică n între 1 și 100 (linia 18) și dacă n este de 3 ori lungimea vectorului „vector” (linia 21). Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 24) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;interschimba_elemente(n, vector)&#039;&#039;&#039; care primește ca parametrii numărul n și vectorul „vector”. În interiorul funcției se inițializează două variabile, primul_par și ultimul_impar, cu None, reprezentând că nu s-au găsit încă un element par în zona 1 și respectiv un element impar în zona 3, apoi se parcurge tabloul unidimensional vector cu o buclă for de la 0 la n-1 utilizând range(n). Pentru fiecare element din vector, se verifică dacă este par (vector[i] % 2 == 0) și dacă primul_par este None. Dacă da, se actualizează valoarea lui primul_par cu indexul elementului curent. Apoi, pentru fiecare element din vector, se verifică dacă este impar (vector[3 * n - 1 - i] % 2 != 0) și dacă ultimul_impar este None. Dacă da, se actualizează valoarea lui ultimul_impar cu indexul elementului curent calculat ca 3 * n - 1 - i, pentru a corespunde zonei 3 a tabloului. Dacă s-au găsit atât un element par în zona 1, cât și un element impar în zona 3, se face interschimbarea lor în tablou folosind indexurile primul_par și ultimul_impar (linia 12). La final, rezultatul modificat (sau nemodificat dacă nu este cazul) al tabloului este scris în fișierul de ieșire &#039;zone.out&#039; utilizând funcția write și metoda join pentru a transforma elementele tabloului într-un șir de caractere separate prin spațiu.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0237_-_Sume&amp;diff=3496</id>
		<title>0237 - Sume</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0237_-_Sume&amp;diff=3496"/>
		<updated>2023-04-13T12:55:02Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/237/sume 0237 - Sume] ---- == Cerinţa == Se dă un şir cu &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale. Să se afişeze suma primilor &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; termeni din şir, apoi suma primilor &amp;#039;&amp;#039;&amp;#039;n-1&amp;#039;&amp;#039;&amp;#039; termeni din şir, şi aşa mai departe. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;sume.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;, iar pe a doua linie &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin spaţii. == Date de ieșire ==  Dacă datele sunt introduse corect, pe ecr...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/237/sume 0237 - Sume]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un şir cu &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se afişeze suma primilor &#039;&#039;&#039;n&#039;&#039;&#039; termeni din şir, apoi suma primilor &#039;&#039;&#039;n-1&#039;&#039;&#039; termeni din şir, şi aşa mai departe.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;sume.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire sume.out va conţine &#039;&#039;&#039;n&#039;&#039;&#039; linii, linia &#039;&#039;&#039;i&#039;&#039;&#039; conţinând suma primilor &#039;&#039;&#039;n-i+1&#039;&#039;&#039; termeni din şir. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n ≤ 100&#039;&#039;&#039;&lt;br /&gt;
* numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; sume.in&lt;br /&gt;
: 4&lt;br /&gt;
: 1 7 3 4&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; sume.out&lt;br /&gt;
: 15&lt;br /&gt;
: 11&lt;br /&gt;
: 8&lt;br /&gt;
: 1&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; sume.in&lt;br /&gt;
: 5&lt;br /&gt;
: 1 7 3 4 1001&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0237 sume&lt;br /&gt;
&lt;br /&gt;
def calculeaza_sumele(n, vector):&lt;br /&gt;
    with open(&#039;sume.out&#039;, &#039;w&#039;) as fisier_iesire:&lt;br /&gt;
        suma = sum(vector)&lt;br /&gt;
        fisier_iesire.write(str(suma) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        for i in range(n-1, 0, -1):&lt;br /&gt;
            suma -= vector[i]&lt;br /&gt;
            fisier_iesire.write(str(suma) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;gt;= 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;sume.in&#039;, &#039;r&#039;) as fisier_intrare:&lt;br /&gt;
        n = int(fisier_intrare.readline().strip())&lt;br /&gt;
        vector = list(map(int, fisier_intrare.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    calculeaza_sumele(n, vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;calculeaza_sumele(n, vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 26) după citirea numărului n (linia 28) și celor n numere pe care le vom pune în șirul „vector” (linia 29), pe care le citim prin deschiderea fișierului sume.in (linia 27).&amp;lt;br&amp;gt;   După ce am citit toate datele de intrare, se va apela funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: n și vector. Funcția verifică n între 1 și 100 (linia 13), dacă elementele vectorului „vector” sunt mai mici decât 1000 (liniile 16-17) și dacă n este lungimea vectorului „vector” (linia 20). Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 23) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;calculeaza_sumele(n, vector)&#039;&#039;&#039; care primește ca parametrii numărul n și vectorul „vector”, apoi:&amp;lt;br&amp;gt;-&amp;gt; se deschide fișierul de ieșire &#039;sume.out&#039; în modul &#039;w&#039; (write) folosind instrucțiunea with open(&#039;sume.out&#039;, &#039;w&#039;) as fisier_iesire;&amp;lt;br&amp;gt;-&amp;gt; se calculează suma tuturor elementelor din vector folosind funcția built-in sum(vector) și se stochează în variabila suma;&amp;lt;br&amp;gt;-&amp;gt; se scrie suma calculată pe prima linie a fișierului de ieșire utilizând metoda write() a obiectului fisier_iesire, convertind valoarea la tipul șir de caractere folosind str(suma), apoi se adaugă un caracter de linie nouă (&amp;quot;\n&amp;quot;) pentru a trece la linia următoare;&amp;lt;br&amp;gt;-&amp;gt; se parcurge șirul în ordine inversă, începând de la ultimul element până la primul element, utilizând bucla for i in range(n-1, 0, -1). Se folosește un pas negativ -1 pentru a parcurge în ordine inversă. În fiecare pas, se scade valoarea elementului curent din suma pentru a calcula suma primelor n-i+1 termeni din șir, unde i este indicele elementului curent și se scade valoarea elementului curent din suma pentru a calcula suma primelor n-i+1 termeni din șir, unde i este indicele elementului curent, apoi se scrie suma calculată în fiecare pas pe o linie separată în fișierul de ieșire utilizând metoda write() a obiectului fisier_iesire, convertind valoarea la tipul șir de caractere folosind str(suma), apoi se adaugă un caracter de linie nouă (&amp;quot;\n&amp;quot;) pentru a trece la linia următoare.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0165_-_maxsim&amp;diff=3495</id>
		<title>0165 - maxsim</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0165_-_maxsim&amp;diff=3495"/>
		<updated>2023-04-13T12:32:22Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/165/maxsim 0165 - maxsim] ---- == Cerinţa == Se dau &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale reprezentând elementele unui vector. Să se determine perechea de elemente egal depărtate de centru pentru care suma valorilor este maximă. Dacă sunt mai multe perechi cu suma maximă se va determina perechea cea mai apropiată de capete. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;maxsim.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;, iar pe a doua linie...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/165/maxsim 0165 - maxsim]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale reprezentând elementele unui vector. Să se determine perechea de elemente egal depărtate de centru pentru care suma valorilor este maximă. Dacă sunt mai multe perechi cu suma maximă se va determina perechea cea mai apropiată de capete.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;maxsim.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire maxsim.out va conţine pe prima linie trei numere &#039;&#039;&#039;S, i, j&#039;&#039;&#039;, separate prin exact un spațiu, reprezentând suma maximă obținută și pozițiile elementelor din pereche. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; ≤ &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
* numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* elementele vectorului se consideră numerotate de la &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ i &amp;lt; j ≤ n&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; maxsim.in&lt;br /&gt;
: 7&lt;br /&gt;
: 6 2 5 4 3 6 1&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; maxsim.out&lt;br /&gt;
: 8 2 6&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; elempp.in&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0165&lt;br /&gt;
&lt;br /&gt;
def afis_perechea_elem_egal_departate_cu_sum_max(n, vector):&lt;br /&gt;
    S = -1&lt;br /&gt;
    i = -1&lt;br /&gt;
    j = -1&lt;br /&gt;
    for k in range(1, n // 2 + 1):&lt;br /&gt;
        if vector[k - 1] + vector[n - k] &amp;gt; S:&lt;br /&gt;
            S = vector[k - 1] + vector[n - k]&lt;br /&gt;
            i = k&lt;br /&gt;
            j = n - k + 1&lt;br /&gt;
    with open(&#039;maxsim.out&#039;, &#039;w&#039;) as fisier_iesire:&lt;br /&gt;
        fisier_iesire.write(str(S) + &amp;quot; &amp;quot; + str(i) + &amp;quot; &amp;quot; + str(j))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;gt;= 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;maxsim.in&#039;, &#039;r&#039;) as fisier_intrare:&lt;br /&gt;
        n = int(fisier_intrare.readline().strip())&lt;br /&gt;
        vector = list(map(int, fisier_intrare.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    afis_perechea_elem_egal_departate_cu_sum_max(n, vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;afis_perechea_elem_egal_departate_cu_sum_max(n, vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 30) după citirea numărului n (linia 32) și celor n numere pe care le vom pune în șirul „vector” (linia 33), pe care le citim prin deschiderea fișierului maxsim.in (linia 35).&amp;lt;br&amp;gt;   După ce am citit toate datele de intrare, se va apela funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: n și vector. Funcția verifică n între 0 și 1000 (linia 17), dacă elementele vectorului „vector” sunt mai mici decât 1000000000 (liniile 20-21) și dacă n este lungimea vectorului „vector” (linia 24). Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 27) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;afis_perechea_elem_egal_departate_cu_sum_max(n, vector)&#039;&#039;&#039; care primește ca parametrii numărul n și vectorul „vector”. Mai exact, funcția parcurge vectorul vector de la început până la jumătate (folosind o buclă for care merge de la 1 până la n // 2 + 1, linia 7). Pentru fiecare pereche de elemente egal depărtate de centru, se calculează suma valorilor acestora (vector[k - 1] + vector[n - k]) și se compară cu valoarea maximă curentă (S). Dacă suma valorilor pentru o pereche de elemente este mai mare decât maximul curent (S), se actualizează suma maximă (S) și se rețin pozițiile elementelor în variabilele i și j. Aceste poziții reprezintă poziția elementului din stânga și poziția elementului din dreapta, în perechea de elemente cu suma maximă. La final, valorile maximului (S) și pozițiilor elementelor (i și j) sunt scrise în fișierul de ieșire &amp;quot;maxsim.out&amp;quot; folosind funcția write() a unui obiect de fișier deschis în modul de scriere (&#039;w&#039;).&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0132_-_ElemPP&amp;diff=3494</id>
		<title>0132 - ElemPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0132_-_ElemPP&amp;diff=3494"/>
		<updated>2023-04-13T12:28:18Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Explicație rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/132/elempp 0132 - ElemPP]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citeşte &#039;&#039;&#039;n&#039;&#039;&#039; şi un şir de &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se afișeze elementele din șir care au proprietatea că primele două cifre din scrierea zecimală formează un pătrat perfect.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;elempp.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039; şi pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire elempp.out va conţine pe prima linie elementele din șirul dat care respectă proprietatea precizată (vezi cerință). Ordinea acestor elemente este cea în care se află în șirul dat. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;20&#039;&#039;&#039;&lt;br /&gt;
* numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039; și au cel puțin două cifre&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; elempp.in&lt;br /&gt;
: 5&lt;br /&gt;
: 253 16 225 100 3678&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; elempp.out&lt;br /&gt;
: 253 16 3678&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; elempp.in&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4 1&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0132 ElemPP&lt;br /&gt;
&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def este_patrat_perfect(n):&lt;br /&gt;
    radical_n = int(math.sqrt(n))&lt;br /&gt;
    return radical_n * radical_n == n&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def afisare_elem_primele_2_cifre_pp(vector):&lt;br /&gt;
    rezultat = []&lt;br /&gt;
    for numar in vector:&lt;br /&gt;
        if este_patrat_perfect(int(str(numar)[:2])):&lt;br /&gt;
            rezultat.append(str(numar))&lt;br /&gt;
    with open(&#039;elempp.out&#039;, &#039;w&#039;) as fisier_iesire:&lt;br /&gt;
        fisier_iesire.write(&#039; &#039;.join(rezultat))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt;= 20:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;lt; 10 or element &amp;gt;= 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;elempp.in&#039;, &#039;r&#039;) as fisier_intrare:&lt;br /&gt;
        n = int(fisier_intrare.readline().strip())&lt;br /&gt;
        vector = list(map(int, fisier_intrare.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    afisare_elem_primele_2_cifre_pp(vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține trei funcții, funcția &#039;&#039;&#039;este_patrat_perfect(n)&#039;&#039;&#039;, funcția &#039;&#039;&#039;afisare_elem_primele_2_cifre_pp(vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 34) după citirea numărului n (linia 36) și celor n numere pe care le vom pune în șirul „vector” (linia 37), pe care le citim prin deschiderea fișierului elempp.in (linia 35).&amp;lt;br&amp;gt;   După ce am citit toate datele de intrare, se va apela funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: n și vector. Funcția verifică n între 1 și 20 (linia 21), dacă elementele vectorului „vector” sunt mai mici decât 1000000000, respectiv strict mai mari decât 10 (liniile 24-25, trebuie să fie strict mai mari decât 10 deoarece numerele trebuie să aibă cel puțin două cifre) și dacă n este lungimea vectorului „vector” (linia 28). Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 31) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;afisare_elem_primele_2_cifre_pp(vector)&#039;&#039;&#039; care primește ca parametrii numărul n și vectorul „vector”, apoi:&amp;lt;br&amp;gt;-&amp;gt; se inițializează o listă vidă rezultat care va conține elementele care respectă proprietatea cerută;&amp;lt;br&amp;gt;-&amp;gt; parcurge fiecare număr din vector utilizând un ciclu for (linia 13);&amp;lt;br&amp;gt;-&amp;gt; pentru fiecare număr numar din vector, extrage primele două cifre din scrierea zecimală a acestuia utilizând str(numar)[:2], care convertește numar într-un șir de caractere și apoi obține primele două caractere din acest șir;&amp;lt;br&amp;gt;-&amp;gt; convertește cele două caractere extrase într-un număr întreg utilizând int(str(numar)[:2]);&amp;lt;br&amp;gt;-&amp;gt; verifică dacă acest număr întreg este un pătrat perfect utilizând funcția &#039;&#039;&#039;este_patrat_perfect(n)&#039;&#039;&#039;, care determină dacă radicalul pătrat al lui n (calculat cu math.sqrt(n), este necesar la începutul programului să importăm biblioteca math, linia 3) este un număr întreg. Dacă este un pătrat perfect, adaugă numar în lista rezultat;&amp;lt;br&amp;gt;-&amp;gt; deschide fișierul de ieșire &#039;elempp.out&#039; în modul de scriere (&#039;w&#039;);&amp;lt;br&amp;gt;-&amp;gt; scrie elementele din lista rezultat separate prin spații în fișierul de ieșire utilizând metoda write() a obiectului fișier (fisier_iesire.write(&#039; &#039;.join(rezultat))), astfel încât ele să fie afișate în aceeași linie în fișierul de ieșire.&amp;lt;br&amp;gt;   Astfel, funcția &#039;&#039;&#039;afisare_elem_primele_2_cifre_pp(vector)&#039;&#039;&#039; identifică și scrie în fișierul de ieșire elementele din vectorul dat care au primele două cifre din scrierea zecimală care formează un pătrat perfect, în ordinea în care se află în vectorul de intrare.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0132_-_ElemPP&amp;diff=3493</id>
		<title>0132 - ElemPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0132_-_ElemPP&amp;diff=3493"/>
		<updated>2023-04-13T11:47:35Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/132/elempp 0132 - ElemPP] ---- == Cerinţa == Se citeşte &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; şi un şir de &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale. Să se afișeze elementele din șir care au proprietatea că primele două cifre din scrierea zecimală formează un pătrat perfect. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;elempp.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; şi pe a doua linie &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin spaţii. == Date de ieșire ==  Dacă datel...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/132/elempp 0132 - ElemPP]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citeşte &#039;&#039;&#039;n&#039;&#039;&#039; şi un şir de &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se afișeze elementele din șir care au proprietatea că primele două cifre din scrierea zecimală formează un pătrat perfect.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;elempp.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039; şi pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire elempp.out va conţine pe prima linie elementele din șirul dat care respectă proprietatea precizată (vezi cerință). Ordinea acestor elemente este cea în care se află în șirul dat. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;amp;les; &#039;&#039;&#039;20&#039;&#039;&#039;&lt;br /&gt;
* numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039; și au cel puțin două cifre&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; elempp.in&lt;br /&gt;
: 5&lt;br /&gt;
: 253 16 225 100 3678&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; elempp.out&lt;br /&gt;
: 253 16 3678&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; elempp.in&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4 1&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0132 ElemPP&lt;br /&gt;
&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def este_patrat_perfect(n):&lt;br /&gt;
    radical_n = int(math.sqrt(n))&lt;br /&gt;
    return radical_n * radical_n == n&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def afisare_elem_primele_2_cifre_pp(vector):&lt;br /&gt;
    rezultat = []&lt;br /&gt;
    for numar in vector:&lt;br /&gt;
        if este_patrat_perfect(int(str(numar)[:2])):&lt;br /&gt;
            rezultat.append(str(numar))&lt;br /&gt;
    with open(&#039;elempp.out&#039;, &#039;w&#039;) as fisier_iesire:&lt;br /&gt;
        fisier_iesire.write(&#039; &#039;.join(rezultat))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt;= 20:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;lt; 10 or element &amp;gt;= 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;elempp.in&#039;, &#039;r&#039;) as fisier_intrare:&lt;br /&gt;
        n = int(fisier_intrare.readline().strip())&lt;br /&gt;
        vector = list(map(int, fisier_intrare.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    afisare_elem_primele_2_cifre_pp(vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține trei funcții, funcția &#039;&#039;&#039;este_patrat_perfect(n)&#039;&#039;&#039;, funcția &#039;&#039;&#039;afisare_elem_primele_2_cifre_pp(vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 34) după citirea numărului n (linia 36) și celor n numere pe care le vom pune în șirul „vector” (linia 37), pe care le citim prin deschiderea fișierului maxim4.in (linia 35).&amp;lt;br&amp;gt;   După ce am citit toate datele de intrare, se va apela funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: n și vector. Funcția verifică n între 1 și 20 (linia 21), dacă elementele vectorului „vector” sunt mai mici decât 1000000000, respectiv strict mai mari decât 10 (liniile 24-25, trebuie să fie strict mai mari decât 10 deoarece numerele trebuie să aibă cel puțin două cifre) și dacă n este lungimea vectorului „vector” (linia 28). Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 31) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;afisare_elem_primele_2_cifre_pp(vector)&#039;&#039;&#039; care primește ca parametrii numărul n și vectorul „vector”, apoi:&amp;lt;br&amp;gt;-&amp;gt; se inițializează o listă vidă rezultat care va conține elementele care respectă proprietatea cerută;&amp;lt;br&amp;gt;-&amp;gt; parcurge fiecare număr din vector utilizând un ciclu for (linia 13);&amp;lt;br&amp;gt;-&amp;gt; pentru fiecare număr numar din vector, extrage primele două cifre din scrierea zecimală a acestuia utilizând str(numar)[:2], care convertește numar într-un șir de caractere și apoi obține primele două caractere din acest șir;&amp;lt;br&amp;gt;-&amp;gt; convertește cele două caractere extrase într-un număr întreg utilizând int(str(numar)[:2]);&amp;lt;br&amp;gt;-&amp;gt; verifică dacă acest număr întreg este un pătrat perfect utilizând funcția &#039;&#039;&#039;este_patrat_perfect(n)&#039;&#039;&#039;, care determină dacă radicalul pătrat al lui n (calculat cu math.sqrt(n), este necesar la începutul programului să importăm biblioteca math, linia 3) este un număr întreg. Dacă este un pătrat perfect, adaugă numar în lista rezultat;&amp;lt;br&amp;gt;-&amp;gt; deschide fișierul de ieșire &#039;elempp.out&#039; în modul de scriere (&#039;w&#039;);&amp;lt;br&amp;gt;-&amp;gt; scrie elementele din lista rezultat separate prin spații în fișierul de ieșire utilizând metoda write() a obiectului fișier (fisier_iesire.write(&#039; &#039;.join(rezultat))), astfel încât ele să fie afișate în aceeași linie în fișierul de ieșire.&amp;lt;br&amp;gt;   Astfel, funcția &#039;&#039;&#039;afisare_elem_primele_2_cifre_pp(vector)&#039;&#039;&#039; identifică și scrie în fișierul de ieșire elementele din vectorul dat care au primele două cifre din scrierea zecimală care formează un pătrat perfect, în ordinea în care se află în vectorul de intrare.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0100_-_NrApPrime&amp;diff=3492</id>
		<title>0100 - NrApPrime</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0100_-_NrApPrime&amp;diff=3492"/>
		<updated>2023-04-13T11:25:12Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/100/nrapprime 0100 - NrApPrime] ---- == Cerinţa == Se citeşte n şi un şir de n numere naturale. Să se determine câte elemente din şir sunt numere prime. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;nrapprime.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; şi pe a doua linie &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin spaţii. == Date de ieșire ==  Dacă datele sunt introduse corect, pe ecran se va afișa:  &amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele sunt introduse co...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/100/nrapprime 0100 - NrApPrime]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citeşte n şi un şir de n numere naturale. Să se determine câte elemente din şir sunt numere prime.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;nrapprime.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039; şi pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire nrapprime.out va conţine pe prima linie un singur număr natural, reprezentând numărul de elemente prime din şir. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;100&#039;&#039;&#039;&lt;br /&gt;
* numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; nrapprime.in&lt;br /&gt;
: 5&lt;br /&gt;
: 25 17 2 10 13&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; nrapprime.out&lt;br /&gt;
: 3&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; nrapprime.in&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0100 NrApPrime&lt;br /&gt;
&lt;br /&gt;
def e_prim(numar):&lt;br /&gt;
    if numar &amp;lt;= 1:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(2, int(numar**0.5) + 1):&lt;br /&gt;
        if numar % i == 0:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def numar_elemente_prime(vector):&lt;br /&gt;
    nr_prime = 0&lt;br /&gt;
    for numar in vector:&lt;br /&gt;
        if e_prim(numar):&lt;br /&gt;
            nr_prime += 1&lt;br /&gt;
    return nr_prime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt;= 100:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;gt;= 1000000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;nrapprime.in&#039;, &#039;r&#039;) as in_file:&lt;br /&gt;
        n = int(in_file.readline().strip())&lt;br /&gt;
        vector = list(map(int, in_file.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    nr_prime = numar_elemente_prime(vector)&lt;br /&gt;
    with open(&#039;nrapprime.out&#039;, &#039;w&#039;) as out_file:&lt;br /&gt;
        out_file.write(str(nr_prime))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus începe în main (&#039;&#039;&#039; if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 34) unde se deschide fișierul de intrare &#039;nrapprime.in&#039; pentru a citi valorile lui n și vector, apoi se apelează funcția &#039;&#039;&#039;citire_conform_restrictiilor()&#039;&#039;&#039; pentru a verifica restricțiile asupra datelor de intrare, se calculează numărul de elemente prime din vector folosind &#039;&#039;&#039;funcția numar_elemente_prime()&#039;&#039;&#039;, și apoi se scrie rezultatul în fișierul de ieșire &#039;nrapprime.out&#039; folosind funcția write().&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; verifică dacă datele de intrare (n și vector) corespund restricțiilor impuse de problemă. Se verifică dacă n este mai mic decât 1 sau mai mare sau egal cu 100, și dacă fiecare element din vector este mai mic decât 1.000.000.000. De asemenea, se verifică dacă n este egal cu lungimea vectorului vector. Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 31) și se va continua programul.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;e_prim(numar)&#039;&#039;&#039; verifică dacă un număr numar este prim. Dacă numar este mai mic sau egal cu 1, se returnează False, deoarece numerele prime sunt definite ca fiind mai mari decât 1. Apoi, se parcurge intervalul [2, sqrt(numar)] și se verifică dacă numar este divizibil cu vreun număr din acest interval. Dacă este divizibil, funcția returnează False, altfel returnează True.&amp;lt;br&amp;gt;   Funcția &#039;&#039;&#039;numar_elemente_prime(vector)&#039;&#039;&#039; primește un vector de numere întregi vector și calculează numărul de elemente prime din acest vector. Se inițializează un contor nr_prime cu valoarea 0 și se parcurge fiecare număr din vector. Pentru fiecare număr, se apelează funcția e_prim() pentru a verifica dacă este prim. Dacă este prim, se incrementează contorul nr_prime. La final, se returnează nr_prime.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0099_-_NrAparitii&amp;diff=3491</id>
		<title>0099 - NrAparitii</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0099_-_NrAparitii&amp;diff=3491"/>
		<updated>2023-04-13T11:07:15Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/99/nraparitii 0099 - NrAparitii] ---- == Cerinţa == Se citeşte n şi un şir de n numere naturale. Să se determine câte elemente din şir sunt egale cu ultimul element al acestuia. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;nraparitii.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; şi pe a doua linie &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin spaţii. == Date de ieșire ==  Dacă datele sunt introduse corect, pe ecran se va afișa:  &amp;#039;&amp;#039;...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/99/nraparitii 0099 - NrAparitii]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citeşte n şi un şir de n numere naturale. Să se determine câte elemente din şir sunt egale cu ultimul element al acestuia.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;nraparitii.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039; şi pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire nraparitii.out va conţine pe prima linie un singur număr natural, reprezentând numărul de elemente din şir care sunt egale cu ultimul element. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;100&#039;&#039;&#039;&lt;br /&gt;
* numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; nraparitii.in&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4 5&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; nraparitii.out&lt;br /&gt;
: 2&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; nraparitii.in&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4 1001&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele nu corespund 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;
# 0099 NrAparitii&lt;br /&gt;
&lt;br /&gt;
def numar_aparitii(vector):&lt;br /&gt;
    ultimul_element = vector[-1]&lt;br /&gt;
    nr_aparitii = vector.count(ultimul_element)&lt;br /&gt;
    return nr_aparitii&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt;= 100:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;gt;= 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;nraparitii.in&#039;, &#039;r&#039;) as in_file:&lt;br /&gt;
        n = int(in_file.readline().strip())&lt;br /&gt;
        vector = list(map(int, in_file.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    nr_aparitii = numar_aparitii(vector)&lt;br /&gt;
    with open(&#039;nraparitii.out&#039;, &#039;w&#039;) as out_file:&lt;br /&gt;
        out_file.write(str(nr_aparitii))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;numar_aparitii(vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 23) după citirea numărului n (linia 25) și celor n numere pe care le vom pune în șirul „vector” (linia 26), pe care le citim prin deschiderea fișierului maxim4.in (linia 24).&amp;lt;br&amp;gt;   După ce am citit toate datele de intrare, se va apela funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: n și vector. Funcția verifică n între 0 și 100 (linia 10), dacă elementele vectorului „vector” sunt mai mici decât 1000 (liniile 13-14) și dacă n este lungimea vectorului „vector” (linia 17). Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 20) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va continua în main ( &#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;) și se va inițializa variabila nr_aparitii care va avea valoarea returnată de funcția &#039;&#039;&#039;numar_aparitii(vector)&#039;&#039;&#039;. Funcția &#039;&#039;&#039;numar_aparitii(vector)&#039;&#039;&#039; are o variabilă numită „ultim_element” care va corespunde valorii ultimului element din șir (linia 4), iar apoi numărăm aparițiile acestei valori cu ajutorul metodei „count()” și punem această valoare în variabila nr_aparitii, pe care o returnăm. Apoi, în continuarea main-ului ( &#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;) deschidem nraparitii.out în modul de scriere (&amp;quot;w&amp;quot;) utilizând contextul &amp;quot;with open()&amp;quot; pentru a se asigura că fișierul este închis corect la finalul execuției și se scrie numărul „nr_aparitii” utilizând metoda &amp;quot;write()&amp;quot;. Valoarea este scrisă într-un format specific folosind interpolarea de șiruri f&amp;quot;{}&amp;quot; pentru a înlocui „nr_aparitii” în șir de caractere.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0082_-_MinMax&amp;diff=3490</id>
		<title>0082 - MinMax</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0082_-_MinMax&amp;diff=3490"/>
		<updated>2023-04-13T10:55:59Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Exemple */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/82/minmax 0082 - MinMax]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citește n, apoi încă n numere întregi. Calculaţi valoarea minima minim si valoarea maxima maxim a celor n numere date.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;minmax.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039; si pe a doua linie n numere naturale 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 introduse corect.&amp;quot;, apoi, în fişierul de ieşire minmax.out va conţine pe prima linie două numere minim şi maxim, separate printr-un singur spaţiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
* numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât &#039;&#039;&#039;1000000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; minmax.in&lt;br /&gt;
: 5&lt;br /&gt;
: 8 2 9 4 5&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; minmax.out&lt;br /&gt;
: 2 9&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; minmax.in&lt;br /&gt;
: 5&lt;br /&gt;
: 8 2 9 4&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0082 MinMax&lt;br /&gt;
&lt;br /&gt;
def afisare_min_max(n, vector):&lt;br /&gt;
    maxim = max(vector)&lt;br /&gt;
    minim = min(vector)&lt;br /&gt;
    with open(&#039;minmax.out&#039;, &#039;w&#039;) as out_file:&lt;br /&gt;
        out_file.write(f&amp;quot;{minim} {maxim}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt;= 1000:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;gt;= 1000000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;minmax.in&#039;, &#039;r&#039;) as in_file:&lt;br /&gt;
        n = int(in_file.readline().strip())&lt;br /&gt;
        vector = list(map(int, in_file.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    afisare_min_max(n, vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;afisare_min_max(n, vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 24) după citirea numărului n (linia 26) și celor n numere pe care le vom pune în șirul „vector” (linia 27), pe care le citim prin deschiderea fișierului minmax.in (linia 25).&amp;lt;br&amp;gt;   După ce am citit toate datele de intrare, se va apela funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: n și vector. Funcția verifică n între 0 și 1000 (linia 11), dacă elementele vectorului „vector” sunt mai mici decât 1000000 (liniile 14-15) și dacă n este lungimea vectorului „vector” (linia 18). Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 21) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;afisare_min_max(n, vector)&#039;&#039;&#039; care primește ca parametrii numărul n și vectorul „vector”. Funcția calculează valoarea minimă și maximă din „vector” utilizând funcțiile predefinite din Python „min()” și „max()”. Aceste funcții returnează, respectiv, cel mai mic și cel mai mare element dintr-o listă (liniile 4, 5). Apoi, funcția deschide fișierul &amp;quot;minmax.out&amp;quot; în modul de scriere (&#039;w&#039;) utilizând contextul &amp;quot;with open()&amp;quot; pentru a se asigura că fișierul este închis corect la finalul execuției (linia 6). Funcția scrie valorile minimă și maximală în fișierul de ieșire utilizând metoda &amp;quot;write()&amp;quot; a obiectului de fișier. Valorile sunt scrise într-un format specific folosind interpolarea de șiruri f&amp;quot;{}&amp;quot; pentru a înlocui variabilele „minim” și „maxim” în șirul de caractere.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0098_-_Maxim4&amp;diff=3489</id>
		<title>0098 - Maxim4</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0098_-_Maxim4&amp;diff=3489"/>
		<updated>2023-04-13T10:55:18Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: /* Exemple */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/98/maxim4 0098 - Maxim4]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citeşte n şi un şir de n numere naturale. Calculaţi valoarea maxima maxim a celor n numere date şi numărul nrmax de apariţii ale acestei valori în şir.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;maxim4.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039; şi pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire maxim4.out va conţine pe prima linie două numere &#039;&#039;&#039;maxim&#039;&#039;&#039; şi &#039;&#039;&#039;nrmax&#039;&#039;&#039;, separate printr-un singur spaţiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;100&#039;&#039;&#039;&lt;br /&gt;
* numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; maxim4.in&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4 5&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; maxim4.out&lt;br /&gt;
: 5 2&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; maxim4.in&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4 1001&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;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;
# 0098 Maxim4&lt;br /&gt;
&lt;br /&gt;
def afis_max_si_nr_aparitii_max(n, vector):&lt;br /&gt;
    maxim = max(vector)&lt;br /&gt;
    nrmax = vector.count(maxim)&lt;br /&gt;
    with open(&#039;maxim4.out&#039;, &#039;w&#039;) as out_file:&lt;br /&gt;
        out_file.write(f&amp;quot;{maxim} {nrmax}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt;= 100:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;gt;= 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;maxim4.in&#039;, &#039;r&#039;) as in_file:&lt;br /&gt;
        n = int(in_file.readline().strip())&lt;br /&gt;
        vector = list(map(int, in_file.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    afis_max_si_nr_aparitii_max(n, vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;afis_max_si_nr_aparitii_max(n, vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 24) după citirea numărului n (linia 26) și celor n numere pe care le vom pune în șirul „vector” (linia 27), pe care le citim prin deschiderea fișierului maxim4.in (linia 25).&amp;lt;br&amp;gt;   După ce am citit toate datele de intrare, se va apela funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: n și vector. Funcția verifică n între 0 și 100 (linia 11), dacă elementele vectorului „vector” sunt mai mici decât 1000 (liniile 14-15) și dacă n este lungimea vectorului „vector” (linia 18). Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 21) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;afis_max_si_nr_aparitii_max(n, vector)&#039;&#039;&#039; care primește ca parametrii numărul n și vectorul „vector”, apoi:&amp;lt;br&amp;gt;-&amp;gt; se calculează valoarea maximă din lista „vector” utilizând funcția predefinită din Python „max()” și se pune în variabila „maxim” (linia 4);&amp;lt;br&amp;gt;-&amp;gt; se numără de câte ori apare valoarea maximă „maxim” în lista „vector” utilizând metoda „count()” a listei;&amp;lt;br&amp;gt;-&amp;gt; se deschide fișierul de ieșire &amp;quot;maxim4.out&amp;quot; în modul de scriere (&amp;quot;w&amp;quot;) utilizând contextul &amp;quot;with open()&amp;quot; pentru a se asigura că fișierul este închis corect la finalul execuției și se scrie valoarea maximă „maxim” și numărul de apariții ale acesteia „nrmax” în fișierul de ieșire utilizând metoda &amp;quot;write()&amp;quot;. Valorile sunt scrise într-un format specific folosind interpolarea de șiruri f&amp;quot;{}&amp;quot; pentru a înlocui variabilele „maxim” și „nrmax” în șirul de caractere.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0098_-_Maxim4&amp;diff=3488</id>
		<title>0098 - Maxim4</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0098_-_Maxim4&amp;diff=3488"/>
		<updated>2023-04-13T10:53:44Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/98/maxim4 0098 - Maxim4]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citeşte n şi un şir de n numere naturale. Calculaţi valoarea maxima maxim a celor n numere date şi numărul nrmax de apariţii ale acestei valori în şir.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;maxim4.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039; şi pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire maxim4.out va conţine pe prima linie două numere &#039;&#039;&#039;maxim&#039;&#039;&#039; şi &#039;&#039;&#039;nrmax&#039;&#039;&#039;, separate printr-un singur spaţiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;100&#039;&#039;&#039;&lt;br /&gt;
* numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; maxim4.in&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; maxim4.out&lt;br /&gt;
: 5 2&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4 1001&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0098 Maxim4&lt;br /&gt;
&lt;br /&gt;
def afis_max_si_nr_aparitii_max(n, vector):&lt;br /&gt;
    maxim = max(vector)&lt;br /&gt;
    nrmax = vector.count(maxim)&lt;br /&gt;
    with open(&#039;maxim4.out&#039;, &#039;w&#039;) as out_file:&lt;br /&gt;
        out_file.write(f&amp;quot;{maxim} {nrmax}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt;= 100:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;gt;= 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;maxim4.in&#039;, &#039;r&#039;) as in_file:&lt;br /&gt;
        n = int(in_file.readline().strip())&lt;br /&gt;
        vector = list(map(int, in_file.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    afis_max_si_nr_aparitii_max(n, vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;afis_max_si_nr_aparitii_max(n, vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 24) după citirea numărului n (linia 26) și celor n numere pe care le vom pune în șirul „vector” (linia 27), pe care le citim prin deschiderea fișierului maxim4.in (linia 25).&amp;lt;br&amp;gt;   După ce am citit toate datele de intrare, se va apela funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: n și vector. Funcția verifică n între 0 și 100 (linia 11), dacă elementele vectorului „vector” sunt mai mici decât 1000 (liniile 14-15) și dacă n este lungimea vectorului „vector” (linia 18). Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 21) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;afis_max_si_nr_aparitii_max(n, vector)&#039;&#039;&#039; care primește ca parametrii numărul n și vectorul „vector”, apoi:&amp;lt;br&amp;gt;-&amp;gt; se calculează valoarea maximă din lista „vector” utilizând funcția predefinită din Python „max()” și se pune în variabila „maxim” (linia 4);&amp;lt;br&amp;gt;-&amp;gt; se numără de câte ori apare valoarea maximă „maxim” în lista „vector” utilizând metoda „count()” a listei;&amp;lt;br&amp;gt;-&amp;gt; se deschide fișierul de ieșire &amp;quot;maxim4.out&amp;quot; în modul de scriere (&amp;quot;w&amp;quot;) utilizând contextul &amp;quot;with open()&amp;quot; pentru a se asigura că fișierul este închis corect la finalul execuției și se scrie valoarea maximă „maxim” și numărul de apariții ale acesteia „nrmax” în fișierul de ieșire utilizând metoda &amp;quot;write()&amp;quot;. Valorile sunt scrise într-un format specific folosind interpolarea de șiruri f&amp;quot;{}&amp;quot; pentru a înlocui variabilele „maxim” și „nrmax” în șirul de caractere.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0098_-_Maxim4&amp;diff=3487</id>
		<title>0098 - Maxim4</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0098_-_Maxim4&amp;diff=3487"/>
		<updated>2023-04-13T10:47:46Z</updated>

		<summary type="html">&lt;p&gt;Csatari Mălina: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/98/maxim4 0098 - Maxim4] ---- == Cerinţa == Se citeşte n şi un şir de n numere naturale. Calculaţi valoarea maxima maxim a celor n numere date şi numărul nrmax de apariţii ale acestei valori în şir. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;maxim4.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; şi pe a doua linie &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin spaţii. == Date de ieșire ==  Dacă datele sunt introduse corect, pe ecr...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/98/maxim4 0098 - Maxim4]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se citeşte n şi un şir de n numere naturale. Calculaţi valoarea maxima maxim a celor n numere date şi numărul nrmax de apariţii ale acestei valori în şir.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;maxim4.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039; şi pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale 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;
&#039;&#039;&#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&#039;&#039;&#039;, apoi, fişierul de ieşire maxim4.out va conţine pe prima linie două numere &#039;&#039;&#039;maxim&#039;&#039;&#039; şi &#039;&#039;&#039;nrmax&#039;&#039;&#039;, separate printr-un singur spaţiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &#039;&#039;&#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;n&#039;&#039;&#039; &amp;lt; &#039;&#039;&#039;100&#039;&#039;&#039;&lt;br /&gt;
* numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; minmax.in&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; minmax.out&lt;br /&gt;
: 5 2&lt;br /&gt;
===Exemplul 2===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 5 3 2 4 1001&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu corespund 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;
# 0098 Maxim4&lt;br /&gt;
&lt;br /&gt;
def afis_max_si_nr_aparitii_max(n, vector):&lt;br /&gt;
    maxim = max(vector)&lt;br /&gt;
    nrmax = vector.count(maxim)&lt;br /&gt;
    with open(&#039;maxim4.out&#039;, &#039;w&#039;) as out_file:&lt;br /&gt;
        out_file.write(f&amp;quot;{maxim} {nrmax}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_conform_restrictiilor(n, vector):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt;= 100:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    for element in vector:&lt;br /&gt;
        if element &amp;gt;= 1000:&lt;br /&gt;
            print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    if n != len(vector):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    with open(&#039;maxim4.in&#039;, &#039;r&#039;) as in_file:&lt;br /&gt;
        n = int(in_file.readline().strip())&lt;br /&gt;
        vector = list(map(int, in_file.readline().strip().split()))&lt;br /&gt;
    citire_conform_restrictiilor(n, vector)&lt;br /&gt;
    afis_max_si_nr_aparitii_max(n, vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
    Programul de mai sus conține două funcții, funcția &#039;&#039;&#039;afis_max_si_nr_aparitii_max(n, vector)&#039;&#039;&#039; și funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039;, care se vor rula în interiorul main-ului (&#039;&#039;&#039;if __name__ == &#039;__main__&#039; &#039;&#039;&#039;, linia 24) după citirea numărului n (linia 26) și celor n numere pe care le vom pune în șirul „vector” (linia 27), pe care le citim prin deschiderea fișierului maxim4.in (linia 25).&amp;lt;br&amp;gt;   După ce am citit toate datele de intrare, se va apela funcția &#039;&#039;&#039;citire_conform_restrictiilor(n, vector)&#039;&#039;&#039; care primește doi parametri: n și vector. Funcția verifică n între 0 și 100 (linia 11), dacă elementele vectorului „vector” sunt mai mici decât 1000 (liniile 14-15) și dacă n este lungimea vectorului „vector” (linia 18). Dacă oricare dintre condiții este încălcată, se va afișa pe ecran mesajul „Datele nu corespund restricțiilor impuse.” și se va ieși din program cu comanda exit(). Dacă toate condițiile sunt respectate, se va afișa mesajul „Datele sunt introduse corect.” (linia 21) și se va continua programul.&amp;lt;br&amp;gt;   Dacă s-au introdus corect datele, se va apela funcția &#039;&#039;&#039;afis_max_si_nr_aparitii_max(n, vector)&#039;&#039;&#039; care primește ca parametrii numărul n și vectorul „vector”, apoi:&amp;lt;br&amp;gt;-&amp;gt; se calculează valoarea maximă din lista „vector” utilizând funcția predefinită din Python „max()” și se pune în variabila „maxim” (linia 4);&amp;lt;br&amp;gt;-&amp;gt; se numără de câte ori apare valoarea maximă „maxim” în lista „vector” utilizând metoda „count()” a listei;&amp;lt;br&amp;gt;-&amp;gt; se deschide fișierul de ieșire &amp;quot;maxim4.out&amp;quot; în modul de scriere (&amp;quot;w&amp;quot;) utilizând contextul &amp;quot;with open()&amp;quot; pentru a se asigura că fișierul este închis corect la finalul execuției și se scrie valoarea maximă „maxim” și numărul de apariții ale acesteia „nrmax” în fișierul de ieșire utilizând metoda &amp;quot;write()&amp;quot;. Valorile sunt scrise într-un format specific folosind interpolarea de șiruri f&amp;quot;{}&amp;quot; pentru a înlocui variabilele „maxim” și „nrmax” în șirul de caractere.&lt;/div&gt;</summary>
		<author><name>Csatari Mălina</name></author>
	</entry>
</feed>