<?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=Adina+Timi%C8%99</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=Adina+Timi%C8%99"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/wiki/Special:Contributions/Adina_Timi%C8%99"/>
	<updated>2026-05-01T02:48:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28450&amp;diff=7084</id>
		<title>28450</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28450&amp;diff=7084"/>
		<updated>2023-10-30T14:50:58Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28450 (Nicolae Mușuroia)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Fie &amp;lt;math&amp;gt;n \in &amp;lt;/math&amp;gt; ℕ, &amp;lt;math&amp;gt;n \geq 4&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;p \in \{1, 2,..., [n/2]\}.&amp;lt;/math&amp;gt; Considerăm mulțimile disjuncte &amp;lt;math&amp;gt;A = \{ a_{1}, a_{2},..., a_{n} \}&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;B = \{ b_{1}, b_{2},..., b_{n} \}&amp;lt;/math&amp;gt;, formate din primii &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; termeni a două progresii aritmetice &amp;lt;math&amp;gt;(a_{k})_{k\geq1}&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;(b_{k})_{k\geq1}&amp;lt;/math&amp;gt; cu rații opuse, nenule. Arătați că printre orice &amp;lt;math&amp;gt;n + p + 1&amp;lt;/math&amp;gt; elemente distincte ale mulțimii &amp;lt;math&amp;gt;A \cup B&amp;lt;/math&amp;gt; există două a căror sumă este egală cu &amp;lt;math&amp;gt;a_{2p} + b_p.&amp;lt;/math&amp;gt;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Fie &amp;lt;math&amp;gt;r \in &amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;{\displaystyle \mathbb {R^*} }&amp;lt;/math&amp;gt; rația primei progresii. Observăm că &amp;lt;math&amp;gt;a_{2p} + b_p = a_1 + b_1 + p \cdot r = a_{p+1} + b_1 = a_{p+2} + b_2 = ... = a_{n} + b_{n-p}. &amp;lt;/math&amp;gt; (1) Presupunem că putem alege &amp;lt;math&amp;gt;n + p + 1 &amp;lt;/math&amp;gt;, elemente distincte ale lui &amp;lt;math&amp;gt;A \cup B&amp;lt;/math&amp;gt;, astfel încât suma a oricăror două dintre acestea să fie diferită de &amp;lt;math&amp;gt;a_{2p} + b_p.&amp;lt;/math&amp;gt; Din (1) deducem că printre aceste  &amp;lt;math&amp;gt;n + p + 1&amp;lt;/math&amp;gt; elemente trebuie să se afle cel mult câte un element din fiecare dintre mulțimile &amp;lt;math&amp;gt; \{ a_{p+1}, b_{1} \},  \{ a_{p+2}, b_{2} \},...,  \{ a_{n}, b_{n-p} \}&amp;lt;/math&amp;gt;. Cum &amp;lt;math&amp;gt;2n - (n - p) = n + p &amp;lt; n + p + 1&amp;lt;/math&amp;gt;, rezultă că printre cele &amp;lt;math&amp;gt;n + p + 1&amp;lt;/math&amp;gt; numere alese se află cel puțin două care aparțin aceleiași dintre mulțimile precedente, contradicție.&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=E:16407&amp;diff=7082</id>
		<title>E:16407</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=E:16407&amp;diff=7082"/>
		<updated>2023-10-30T14:48:26Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;16407 (Cristina Vijdeluc, Salonic și Mihai Vijdeluc)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Aflați cifrele nenule &amp;lt;math&amp;gt;a &amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; pentru care &amp;lt;math&amp;gt;a + 10 \cdot (a + b)^{3} = \overline{baba}.&amp;lt;/math&amp;gt;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Egalitatea din enunț se scrie &amp;lt;math&amp;gt;a + 10 \cdot (a + b)^{3} = \overline{bab0} + a,&amp;lt;/math&amp;gt; de unde &amp;lt;math&amp;gt;10 \cdot (a + b)^{3} = \overline{bab0} &amp;lt;/math&amp;gt; și apoi &amp;lt;math&amp;gt;(a + b)^{3} = \overline{bab}.&amp;lt;/math&amp;gt; Căutând prin încercări cuburi perfecte de 3 cifre, găsim &amp;lt;math&amp;gt;7^{3} = 343&amp;lt;/math&amp;gt;. Astfel, &amp;lt;math&amp;gt;a = 4&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;b = 3&amp;lt;/math&amp;gt;, de unde &amp;lt;math&amp;gt; \overline{ab} = 43.&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28450&amp;diff=7064</id>
		<title>28450</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28450&amp;diff=7064"/>
		<updated>2023-10-27T11:46:53Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28450 (Nicolae Mușuroia)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fie &amp;lt;math&amp;gt;n \in &amp;lt;/math&amp;gt; ℕ, &amp;lt;math&amp;gt;n \geq 4&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;p \in \{1, 2,..., [n/2]\}.&amp;lt;/math&amp;gt; Considerăm mulțimile disjuncte &amp;lt;math&amp;gt;A = \{ a_{1}, a_{2},..., a_{n} \}&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;B = \{ b_{1}, b_{2},..., b_{n} \}&amp;lt;/math&amp;gt;, formate din primii &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; termeni a două progresii aritmetice &amp;lt;math&amp;gt;(a_{k})_{k\geq1}&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;(b_{k})_{k\geq1}&amp;lt;/math&amp;gt; cu rații opuse, nenule. Arătați că printre orice &amp;lt;math&amp;gt;n + p + 1&amp;lt;/math&amp;gt; elemente distincte ale mulțimii &amp;lt;math&amp;gt;A \cup B&amp;lt;/math&amp;gt; există două a căror sumă este egală cu &amp;lt;math&amp;gt;a_{2p} + b_p.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Fie &amp;lt;math&amp;gt;r \in &amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;{\displaystyle \mathbb {R^*} }&amp;lt;/math&amp;gt; rația primei progresii. Observăm că &amp;lt;math&amp;gt;a_{2p} + b_p = a_1 + b_1 + p \cdot r = a_{p+1} + b_1 = a_{p+2} + b_2 = ... = a_{n} + b_{n-p}. &amp;lt;/math&amp;gt; (1) Presupunem că putem alege &amp;lt;math&amp;gt;n + p + 1 &amp;lt;/math&amp;gt;, elemente distincte ale lui &amp;lt;math&amp;gt;A \cup B&amp;lt;/math&amp;gt;, astfel încât suma a oricăror două dintre acestea să fie diferită de &amp;lt;math&amp;gt;a_{2p} + b_p.&amp;lt;/math&amp;gt; Din (1) deducem că printre aceste  &amp;lt;math&amp;gt;n + p + 1&amp;lt;/math&amp;gt; elemente trebuie să se afle cel mult câte un element din fiecare dintre mulțimile &amp;lt;math&amp;gt; \{ a_{p+1}, b_{1} \},  \{ a_{p+2}, b_{2} \},...,  \{ a_{n}, b_{n-p} \}&amp;lt;/math&amp;gt;. Cum &amp;lt;math&amp;gt;2n - (n - p) = n + p &amp;lt; n + p + 1&amp;lt;/math&amp;gt;, rezultă că printre cele &amp;lt;math&amp;gt;n + p + 1&amp;lt;/math&amp;gt; numere alese se află cel puțin două care aparțin aceleiași dintre mulțimile precedente, contradicție.&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28450&amp;diff=7063</id>
		<title>28450</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28450&amp;diff=7063"/>
		<updated>2023-10-27T11:46:01Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă: &amp;#039;&amp;#039;&amp;#039;28450 (Nicolae Mușuroia)&amp;#039;&amp;#039;&amp;#039;  Fie &amp;lt;math&amp;gt;n \in &amp;lt;/math&amp;gt; ℕ, &amp;lt;math&amp;gt;n \geq 4&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;p \in \{1, 2,..., [n/2]\}.&amp;lt;/math&amp;gt; Considerăm mulțimile disjuncte &amp;lt;math&amp;gt;A = \{ a_{1}, a_{2},..., a_{n} \}&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;B = \{ b_{1}, b_{2},..., b_{n} \}&amp;lt;/math&amp;gt;, formate din primii &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; termeni a două progresii aritmetice &amp;lt;math&amp;gt;(a_{k})_{k\geq1}&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;(b_{k})_{k\geq1}&amp;lt;/math&amp;gt; cu rații opuse, nenule. Arătați că printre orice &amp;lt;math&amp;gt;n + p + 1&amp;lt;/math&amp;gt; elemente...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28450 (Nicolae Mușuroia)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fie &amp;lt;math&amp;gt;n \in &amp;lt;/math&amp;gt; ℕ, &amp;lt;math&amp;gt;n \geq 4&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;p \in \{1, 2,..., [n/2]\}.&amp;lt;/math&amp;gt; Considerăm mulțimile disjuncte &amp;lt;math&amp;gt;A = \{ a_{1}, a_{2},..., a_{n} \}&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;B = \{ b_{1}, b_{2},..., b_{n} \}&amp;lt;/math&amp;gt;, formate din primii &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; termeni a două progresii aritmetice &amp;lt;math&amp;gt;(a_{k})_{k\geq1}&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;(b_{k})_{k\geq1}&amp;lt;/math&amp;gt; cu rații opuse, nenule. Arătați că printre orice &amp;lt;math&amp;gt;n + p + 1&amp;lt;/math&amp;gt; elemente distincte ale mulțimii &amp;lt;math&amp;gt;A \cup B&amp;lt;/math&amp;gt; există două a căror sumă este egală cu &amp;lt;math&amp;gt;a_{2p} + b_p.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Fie &amp;lt;math&amp;gt;r \in &amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;{\displaystyle \mathbb {R^*} }&amp;lt;/math&amp;gt; rația primei progresii. Observăm că &amp;lt;math&amp;gt;a_{2p} + b_p = a_1 + b_1 + p \cdot r = a_{p+1} + b_1 = a_{p+2} + b_2 = ... = a_{n} + b_{n-p}. &amp;lt;/math&amp;gt; (1)&lt;br /&gt;
&lt;br /&gt;
Presupunem că putem alege &amp;lt;math&amp;gt;n + p + 1 &amp;lt;/math&amp;gt;, elemente distincte ale lui &amp;lt;math&amp;gt;A \cup B&amp;lt;/math&amp;gt;, astfel încât suma a oricăror două dintre acestea să fie diferită de &amp;lt;math&amp;gt;a_{2p} + b_p.&amp;lt;/math&amp;gt; Din (1) deducem că printre aceste  &amp;lt;math&amp;gt;n + p + 1&amp;lt;/math&amp;gt; elemente trebuie să se afle cel mult câte un element din fiecare dintre mulțimile &amp;lt;math&amp;gt; \{ a_{p+1}, b_{1} \},  \{ a_{p+2}, b_{2} \},...,  \{ a_{n}, b_{n-p} \}&amp;lt;/math&amp;gt;. Cum &amp;lt;math&amp;gt;2n - (n - p) = n + p &amp;lt; n + p + 1&amp;lt;/math&amp;gt;, rezultă că printre cele &amp;lt;math&amp;gt;n + p + 1&amp;lt;/math&amp;gt; numere alese se află cel puțin două care aparțin aceleiași dintre mulțimile precedente, contradicție.&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=E:16407&amp;diff=7062</id>
		<title>E:16407</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=E:16407&amp;diff=7062"/>
		<updated>2023-10-27T10:00:42Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă: &amp;#039;&amp;#039;&amp;#039;16407 (Cristina Vijdeluc, Salonic și Mihai Vijdeluc)&amp;#039;&amp;#039;&amp;#039;  Aflați cifrele nenule &amp;lt;math&amp;gt;a &amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; pentru care &amp;lt;math&amp;gt;a + 10 \cdot (a + b)^{3} = \overline{baba}.&amp;lt;/math&amp;gt;   &amp;#039;&amp;#039;&amp;#039;Soluție:&amp;#039;&amp;#039;&amp;#039;  Egalitatea din enunț se scrie &amp;lt;math&amp;gt;a + 10 \cdot (a + b)^{3} = \overline{bab0} + a,&amp;lt;/math&amp;gt; de unde &amp;lt;math&amp;gt;10 \cdot (a + b)^{3} = \overline{bab0} &amp;lt;/math&amp;gt; și apoi &amp;lt;math&amp;gt;(a + b)^{3} = \overline{bab}.&amp;lt;/math&amp;gt; Căutând prin încercări cuburi perfecte de 3 cifre, găsim &amp;lt;math&amp;gt;...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;16407 (Cristina Vijdeluc, Salonic și Mihai Vijdeluc)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Aflați cifrele nenule &amp;lt;math&amp;gt;a &amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; pentru care &amp;lt;math&amp;gt;a + 10 \cdot (a + b)^{3} = \overline{baba}.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Egalitatea din enunț se scrie &amp;lt;math&amp;gt;a + 10 \cdot (a + b)^{3} = \overline{bab0} + a,&amp;lt;/math&amp;gt; de unde &amp;lt;math&amp;gt;10 \cdot (a + b)^{3} = \overline{bab0} &amp;lt;/math&amp;gt; și apoi &amp;lt;math&amp;gt;(a + b)^{3} = \overline{bab}.&amp;lt;/math&amp;gt; Căutând prin încercări cuburi perfecte de 3 cifre, găsim &amp;lt;math&amp;gt;7^{3} = 343&amp;lt;/math&amp;gt;. Astfel, &amp;lt;math&amp;gt;a = 4&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;b = 3&amp;lt;/math&amp;gt;, de unde &amp;lt;math&amp;gt; \overline{ab} = 43.&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=User:Adina_Timi%C8%99&amp;diff=7061</id>
		<title>User:Adina Timiș</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=User:Adina_Timi%C8%99&amp;diff=7061"/>
		<updated>2023-10-27T09:58:45Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Ștergerea conținutului paginii&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=User:Adina_Timi%C8%99&amp;diff=7060</id>
		<title>User:Adina Timiș</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=User:Adina_Timi%C8%99&amp;diff=7060"/>
		<updated>2023-10-27T09:52:42Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă: &amp;#039;&amp;#039;&amp;#039;16407 (Cristina Vijdeluc, Salonic și Mihai Vijdeluc)&amp;#039;&amp;#039;&amp;#039;  Aflați cifrele nenule &amp;lt;math&amp;gt;a &amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; pentru care &amp;lt;math&amp;gt;a + 10 \cdot (a + b)^{3} = \overline{baba}.&amp;lt;/math&amp;gt;   &amp;#039;&amp;#039;&amp;#039;Soluție:&amp;#039;&amp;#039;&amp;#039;  Egalitatea din enunț se scrie &amp;lt;math&amp;gt;a + 10 \cdot (a + b)^{3} = \overline{bab0} + a,&amp;lt;/math&amp;gt; de unde &amp;lt;math&amp;gt;10 \cdot (a + b)^{3} = \overline{bab0} &amp;lt;/math&amp;gt; și apoi &amp;lt;math&amp;gt;(a + b)^{3} = \overline{bab}.&amp;lt;/math&amp;gt; Căutând prin încercări cuburi perfecte de 3 cifre, găsim &amp;lt;math&amp;gt;...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;16407 (Cristina Vijdeluc, Salonic și Mihai Vijdeluc)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Aflați cifrele nenule &amp;lt;math&amp;gt;a &amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; pentru care &amp;lt;math&amp;gt;a + 10 \cdot (a + b)^{3} = \overline{baba}.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Egalitatea din enunț se scrie &amp;lt;math&amp;gt;a + 10 \cdot (a + b)^{3} = \overline{bab0} + a,&amp;lt;/math&amp;gt; de unde &amp;lt;math&amp;gt;10 \cdot (a + b)^{3} = \overline{bab0} &amp;lt;/math&amp;gt; și apoi &amp;lt;math&amp;gt;(a + b)^{3} = \overline{bab}.&amp;lt;/math&amp;gt; Căutând prin încercări cuburi perfecte de 3 cifre, găsim &amp;lt;math&amp;gt;7^{3} = 343&amp;lt;/math&amp;gt;. Astfel, &amp;lt;math&amp;gt;a = 4&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;b = 3&amp;lt;/math&amp;gt;, de unde &amp;lt;math&amp;gt; \overline{ab} = 43.&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0886_-_Secv_Cons&amp;diff=6748</id>
		<title>0886 - Secv Cons</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0886_-_Secv_Cons&amp;diff=6748"/>
		<updated>2023-05-21T11:32:44Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se citește un șir format din cel mult 255 caractere, litere mici ale alfabetului englez. Să se determine cea mai lungă secvență din șir formată numai din consoane.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură un șir de caractere S.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran subșirul determinat.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*dacă șirul dat conține mai multe subșiruri formate numai din consoane de lungime maximă se va afișa cea mai din dreapta;&lt;br /&gt;
*se garantează că în șirul dat există cel puțin o consoană;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:ukdiaehldjasmfx&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:smfx&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:aeiou&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0886 - Secv Cons&lt;br /&gt;
def gaseste_sir(S):&lt;br /&gt;
    cel_mai_mare_sir = &amp;quot;&amp;quot;  # inițializăm cel mai mare subșir, format numai din consoane cu un șir gol&lt;br /&gt;
    sirul_initial = &amp;quot;&amp;quot;  # inițializăm șirul în care construim subșirul format numai din consoane&lt;br /&gt;
    vocale = &amp;quot;aeiou&amp;quot;  # definim lista de vocale&lt;br /&gt;
    for c in S[::-1]:  # iterăm prin caracterele șirului S, în ordine inversă&lt;br /&gt;
        if c not in vocale:  # dacă litera nu este o vocală&lt;br /&gt;
            sirul_initial = c + sirul_initial  # adăugăm caracterul la începutul șirului&lt;br /&gt;
        else:&lt;br /&gt;
            if len(sirul_initial) &amp;gt; len(cel_mai_mare_sir):  # dacă lungimea șirului este mai mare decât lungimea, cel mai mare subșir găsit până acum&lt;br /&gt;
                cel_mai_mare_sir = sirul_initial  # actualizăm cel mai mare subșir&lt;br /&gt;
            sirul_initial = &amp;quot;&amp;quot;  # resetăm șirul curent&lt;br /&gt;
    if len(sirul_initial) &amp;gt; len(cel_mai_mare_sir):  # verificăm dacă șirul este cel mai mare subșir găsit&lt;br /&gt;
        cel_mai_mare_sir = sirul_initial  # actualizăm cel mai mare subșir&lt;br /&gt;
    return cel_mai_mare_sir&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    S = input(&amp;quot;Introduceți șirul de caractere: &amp;quot;)&lt;br /&gt;
    if all(c.isalpha() and c.islower() for c in S) and len(S) &amp;lt;= 255 and any(c not in &amp;quot;aeiou&amp;quot; for c in S):&lt;br /&gt;
        # verificarea restricțiilor&lt;br /&gt;
        cel_mai_mare_sir = gaseste_sir(S)  # găsim cel mai mare subșir format numai din consoane&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        print(&amp;quot;Cel mai lung subșir format numai din consoane este:&amp;quot;, cel_mai_mare_sir)  # afișăm rezultatul&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2692_-_Lung_Sort_Desc&amp;diff=6747</id>
		<title>2692 - Lung Sort Desc</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2692_-_Lung_Sort_Desc&amp;diff=6747"/>
		<updated>2023-05-21T11:21:21Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un șir de caractere în care cuvintele sunt formate din litere mici și mari ale alfabetului englez și sunt separate prin spații. Să se afișeze cuvintele pe ecran, fiecare cuvânt pe câte o linie, în ordinea descrescătoare a numărului de litere. Dacă două cuvinte au același număr de litere atunci ele se vor afișa în ordine lexicografică.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură șirul de caractere.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa cuvintele din șir pe ecran, conform cerinței.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*șirul va conține maximum 255 de caractere;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:ana are mere&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:mere&lt;br /&gt;
:ana&lt;br /&gt;
:are&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:1234&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#2692- Lung Sort Desc&lt;br /&gt;
def sortare_cuvinte(s):&lt;br /&gt;
    cuvinte = s.split()  # separăm șirul în cuvinte&lt;br /&gt;
    numar_litere = [len(cuvant) for cuvant in cuvinte]  # listă cu numărul de litere al fiecărui cuvânt&lt;br /&gt;
    &lt;br /&gt;
    # sortăm cuvintele în funcție de lungimea acestora (descrescător) și în caz de egalitate, le sortăm în ordine alfabetică&lt;br /&gt;
    cuvinte_sortate = sorted(cuvinte, key=lambda x: (-len(x), x))&lt;br /&gt;
&lt;br /&gt;
    # afișăm cuvintele sortate&lt;br /&gt;
    for cuvant in cuvinte_sortate:&lt;br /&gt;
        print(cuvant)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    s = input(&#039;Introduceți șirul: &#039;)&lt;br /&gt;
    if len(s) &amp;lt;= 255 and not any(c.isdigit() for c in s):  # verificarea restricțiilor&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        sortare_cuvinte(s)  # sortăm și afișăm cuvintele&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3113_-_Count_Words&amp;diff=6746</id>
		<title>3113 - Count Words</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3113_-_Count_Words&amp;diff=6746"/>
		<updated>2023-05-21T11:17:18Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un șir de caractere care conține litere mici și mari ale alfabetului englez, spații și semne de punctuație. Să se afișeze fiecare cuvânt și frecvența de apariție a lui în șirul de caractere pe câte o linie fiecare pereche cuvânt-frecvență ordonate lexicografic.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură un șir de caractere.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran pe câte o linie fiecare cuvânt și frecvența lui de apariție în șir.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ strlen(sir) ≤ 10000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:Ana are mere si prune si pere, insa Ana nu are masina si casa.&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:Ana 2&lt;br /&gt;
:are 2&lt;br /&gt;
:casa 1&lt;br /&gt;
:insa 1&lt;br /&gt;
:masina 1&lt;br /&gt;
:mere 1&lt;br /&gt;
:nu 1&lt;br /&gt;
:pere 1&lt;br /&gt;
:prune 1&lt;br /&gt;
:si 3&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:1234&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#3113 - Count Words&lt;br /&gt;
import string&lt;br /&gt;
&lt;br /&gt;
def calculeaza_frecventa_cuvinte(s):&lt;br /&gt;
    s = s.translate(str.maketrans(&#039;&#039;, &#039;&#039;, string.punctuation))  # eliminăm semnele de punctuație din șirul de caractere&lt;br /&gt;
    cuvinte = s.split()  # separăm șirul în cuvinte&lt;br /&gt;
    frecventa_cuvinte = {}  # dicționar pentru a stoca frecvența cuvintelor&lt;br /&gt;
&lt;br /&gt;
    # calculăm frecvența cuvintelor&lt;br /&gt;
    for cuvant in cuvinte:&lt;br /&gt;
        if cuvant in frecventa_cuvinte:&lt;br /&gt;
            frecventa_cuvinte[cuvant] += 1&lt;br /&gt;
        else:&lt;br /&gt;
            frecventa_cuvinte[cuvant] = 1&lt;br /&gt;
&lt;br /&gt;
    cuvinte_sortate = sorted(frecventa_cuvinte.keys())  # sortăm cuvintele în ordine alfabetică&lt;br /&gt;
&lt;br /&gt;
    # afișăm cuvintele și frecvența lor&lt;br /&gt;
    for cuvant in cuvinte_sortate:&lt;br /&gt;
        print(cuvant, frecventa_cuvinte[cuvant])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    s = input(&#039;Introduceți șirul: &#039;)&lt;br /&gt;
    if len(s) &amp;lt;= 10000 and not any(c.isdigit() for c in s):  # verificarea restricțiilor&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        calculeaza_frecventa_cuvinte(s)  # calculăm și afișăm frecvența cuvintelor&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0534_-_Factorial_1&amp;diff=6745</id>
		<title>0534 - Factorial 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0534_-_Factorial_1&amp;diff=6745"/>
		<updated>2023-05-21T11:13:02Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Să se scrie un program care citește numărul natural n și determină valoarea lui n! = 1 * 2 * 3 * ... * n.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afișează pe prima linie a ecranului valoarea lui n!.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*0 ≤ n ≤ 1000;&lt;br /&gt;
*prin definiție, 0! = 1;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:4&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:24&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:1001&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0534 - Factorial 1&lt;br /&gt;
def factorial(n):&lt;br /&gt;
    if n == 0:&lt;br /&gt;
        return 1  # factorialul lui 0 este 1&lt;br /&gt;
    elif n &amp;lt; 0 or n &amp;gt; 1000 or not isinstance(n, int):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)  # verificarea restricțiilor&lt;br /&gt;
        return None&lt;br /&gt;
    else:&lt;br /&gt;
        result = 1  # inițializăm rezultatul cu 1&lt;br /&gt;
        for i in range(1, n+1):  # parcurgem valorile de la 1 la n &lt;br /&gt;
            result *= i  # calculăm produsul&lt;br /&gt;
        return result&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți n: &amp;quot;))&lt;br /&gt;
    if factorial(n) is not None:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)  # verificăm dacă rezultatul factorialului există&lt;br /&gt;
        print(factorial(n))  # afișăm rezultatul&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0155_-_Cif_Max&amp;diff=6744</id>
		<title>0155 - Cif Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0155_-_Cif_Max&amp;diff=6744"/>
		<updated>2023-05-21T11:09:37Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Scrieţi un program care citeşte de la tastatură un şir de cel mult 60 de caractere (litere mici şi mari ale alfabetului englez, cifre, puncte, virgule şi spaţii) şi afişează pe ecran cifra care apare de cele mai multe ori în şirul citit.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citeşte de la tastatură un şir de cel mult 60 de caractere.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afişa pe ecran cifra care apare de cele mai multe ori în şir.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*dacă şirul conţine mai multe cifre cu număr maxim de apariţii si va afişa cea mai mică;&lt;br /&gt;
*dacă şirul nu conţine cifre se va afişa NU;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:Voi lua 9,5 la matematica 10 la informatica si 10 la romana&lt;br /&gt;
;Ieșire&lt;br /&gt;
:0&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:aaaaaa&lt;br /&gt;
;Ieșire&lt;br /&gt;
:NU&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;
#0155 - Cif Max&lt;br /&gt;
def numar_aparitii(sir):&lt;br /&gt;
    sirul = [0] * 10  # inițializăm o listă de 10 elemente cu valoarea 0, pentru a număra aparițiile cifrelor&lt;br /&gt;
    for char in sir:&lt;br /&gt;
        if char.isdigit():  # verificăm dacă litera este o cifră&lt;br /&gt;
            sirul[int(char)] += 1  # incrementăm numărul de apariții al cifrei &lt;br /&gt;
    return sirul&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def sir_maxim(sirul):&lt;br /&gt;
    numar_maxim = max(sirul)  # găsim valoarea maximă din lista de apariții&lt;br /&gt;
    if numar_maxim == 0:  # dacă nu există cifre în șir, returnăm &amp;quot;NU&amp;quot;&lt;br /&gt;
        return &amp;quot;NU&amp;quot;&lt;br /&gt;
    for numar in range(10):  # parcurgem cifrele de la 0 la 9&lt;br /&gt;
        if sirul[numar] == numar_maxim:  #  în cazul în care găsim o cifră cu numărul maxim de apariții&lt;br /&gt;
            return numar  # returnăm acea cifră&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    sir = input(&amp;quot;Introduceți un șir de caractere: &amp;quot;)&lt;br /&gt;
    if len(sir) &amp;gt; 60:  # verificarea restricțiilor&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        sirul = numar_aparitii(sir)  # calculăm lista de apariții a cifrelor în șir&lt;br /&gt;
        cifra_maxima = sir_maxim(sirul)  # găsim cifra cu numărul maxim de apariții&lt;br /&gt;
        if cifra_maxima == &amp;quot;NU&amp;quot;:&lt;br /&gt;
            print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(cifra_maxima)&lt;br /&gt;
            print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1563_-_Alfa_Bet&amp;diff=6743</id>
		<title>1563 - Alfa Bet</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1563_-_Alfa_Bet&amp;diff=6743"/>
		<updated>2023-05-21T11:00:26Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un cuvânt format din litere mici ale alfabetului englez. Să se afișeze literele sale în ordine alfabetică.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește un cuvânt format doar din litere mici ale alfabetului englez.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran literele cuvântului, citit în ordine alfabetică.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*cuvântul va avea maximum 1000 de caractere;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:batman&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:aabmnt&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0123&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#1563 - Alfa Bet&lt;br /&gt;
def alfabet():&lt;br /&gt;
    cuvant = input(&amp;quot;Introduceți cuvântul: &amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    # verificarea restricțiilor&lt;br /&gt;
    if len(cuvant) &amp;gt; 1000 or not cuvant.isalpha():&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        sorted_cuvant = sorted(cuvant)&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        print(&amp;quot;&amp;quot;.join(sorted_cuvant))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    alfabet()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0528_-_Multimi&amp;diff=6742</id>
		<title>0528 - Multimi</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0528_-_Multimi&amp;diff=6742"/>
		<updated>2023-05-21T10:55:24Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau două mulțimi de numere naturale. Să se afișeze reuniunea și intersecția lor.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură, în ordine:&lt;br /&gt;
*numărul n de elemente ale primei mulțimi;&lt;br /&gt;
*n numere naturale diferite, ordonate crescător, reprezentând elementele primei mulțimi;&lt;br /&gt;
*numărul m de elemente ale celei de-a doua mulțimi;&lt;br /&gt;
*m numere naturale diferite, ordonate crescător, reprezentând elementele celei de-a doua mulțimi.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran elementele reuniunii celor două mulțimi, în ordine crescătoare, separate prin exact un spațiu, iar pe rândul următor elementele intersecției celor două mulțimi, în ordine crescătoare, separate de asemenea prin exact un spațiu.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n , m ≤ 1000;&lt;br /&gt;
*elementele celor două mulțimi vor fi mai mici decât 1.000.000.000;&lt;br /&gt;
*cele două mulțimi date au cel puțin un element comun;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:5&lt;br /&gt;
:3 6 8 9 12&lt;br /&gt;
:7&lt;br /&gt;
:2 5 6 7 8 9 11&lt;br /&gt;
;Ieșire&lt;br /&gt;
:2 3 5 6 7 8 9 11 12&lt;br /&gt;
:6 8 9&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:9 22&lt;br /&gt;
:-1&lt;br /&gt;
:9 0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0528 - Multimi&lt;br /&gt;
def multimi():&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul de elemente ale primei mulțimi: &amp;quot;))&lt;br /&gt;
    set1 = set(map(int, input(&amp;quot;Introduceți elementele primei mulțimi: &amp;quot;).split()))&lt;br /&gt;
    &lt;br /&gt;
    m = int(input(&amp;quot;Introduceți numărul de elemente ale celei de-a doua mulțimi: &amp;quot;))&lt;br /&gt;
    set2 = set(map(int, input(&amp;quot;Introduceți elementele celei de-a doua mulțimi: &amp;quot;).split()))&lt;br /&gt;
    &lt;br /&gt;
    # Verificarea restricțiilor&lt;br /&gt;
    if n &amp;lt;= 0 or n &amp;gt; 1000 or m &amp;lt;= 0 or m &amp;gt; 1000 or max(set1.union(set2)) &amp;gt;= 1000000000:&lt;br /&gt;
        print(&amp;quot;\nDatele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        # Calcularea reuniunii și intersecției&lt;br /&gt;
        union_set = sorted(list(set1.union(set2)))&lt;br /&gt;
        intersection_set = sorted(list(set1.intersection(set2)))&lt;br /&gt;
        &lt;br /&gt;
        # Afișarea rezultatelor&lt;br /&gt;
        print(&amp;quot;Reuniunea celor două mulțimi: &amp;quot;, end=&amp;quot;&amp;quot;)&lt;br /&gt;
        for element in union_set:&lt;br /&gt;
            print(element, end=&amp;quot; &amp;quot;)&lt;br /&gt;
            &lt;br /&gt;
        print(&amp;quot;\nIntersecția celor două mulțimi: &amp;quot;, end=&amp;quot;&amp;quot;)&lt;br /&gt;
        for element in intersection_set:&lt;br /&gt;
            print(element, end=&amp;quot; &amp;quot;)&lt;br /&gt;
        &lt;br /&gt;
        print(&amp;quot;\nDatele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    multimi()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0535_-_Fabrica&amp;diff=6741</id>
		<title>0535 - Fabrica</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0535_-_Fabrica&amp;diff=6741"/>
		<updated>2023-05-21T10:49:11Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
La secția de împachetare a produselor dintr-o fabrică lucrează n muncitori. Fiecare muncitor împachetează același tip de produs, iar pentru fiecare se cunoaște timpul necesar pentru împachetarea unui obiect. Să se determine câte obiecte vor fi împachetate de cei n muncitori într-un interval de timp dat, T.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele n și T, iar apoi n numere naturale nenule, reprezentând timpul necesar fiecărui muncitor pentru împachetarea unui obiect.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul C, reprezentând numărul de obiecte împachetate de cei n muncitori în intervalul dat.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000;&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 1.000;&lt;br /&gt;
*1 ≤ T ≤ 1.000.000;&lt;br /&gt;
*toate intervalele de timp sunt exprimate în aceeași unitate de măsură;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:6 30&lt;br /&gt;
:4 7 3 6 7 1&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:60&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0 10&lt;br /&gt;
:4 7 3 6 7 1&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0535 - Fabrica&lt;br /&gt;
def calculeaza_numarul_de_obiecte(n, T, timpi):&lt;br /&gt;
    count = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        obiecte = T // timpi[i]&lt;br /&gt;
        count += obiecte&lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    # citim numărul de muncitori și intervalul de timp de la tastatură&lt;br /&gt;
    n, T = map(int, input(&amp;quot;Introduceți numărul de muncitori și intervalul de timp: &amp;quot;).split())&lt;br /&gt;
&lt;br /&gt;
    # citim timpii necesari pentru împachetarea unui obiect, pentru fiecare muncitor&lt;br /&gt;
    timpi = list(map(int, input(&amp;quot;Introduceți timpii necesari pentru împachetarea unui obiect: &amp;quot;).split()))&lt;br /&gt;
&lt;br /&gt;
    # verificarea restricțiilor&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000 or (max(timpi) &amp;gt; 1000 and (T &amp;lt; 1 or T &amp;gt; 1000000)):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        # calculăm numărul total de obiecte împachetate&lt;br /&gt;
        C = calculeaza_numarul_de_obiecte(n, T, timpi)&lt;br /&gt;
&lt;br /&gt;
        # afișăm rezultatul&lt;br /&gt;
        print(f&amp;quot;{C} obiecte au fost împachetate, de către cei {n} muncitori, în intervalul de timp dat.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0567_-_Pereche&amp;diff=6740</id>
		<title>0567 - Pereche</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0567_-_Pereche&amp;diff=6740"/>
		<updated>2023-05-21T10:44:01Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
n elevi numerotați de la 1 la n stau în cerc, astfel încât elevul 1 și elevul n sunt vecini. Pentru fiecare elev se cunoaște înălțimea. O pereche de elevi învecinați este pereche potrivită dacă diferența dintre înălțimile elevilor este minimă. Determinați o pereche potrivită.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n înălțimi ale elevilor, în ordine.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numerele de ordine i j, separate prin exact un spatiu, a elevilor care formează o pereche potrivită.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*2 ≤ n ≤ 1000;&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 1.000;&lt;br /&gt;
*dacă există mai multe perechi potrivite, se poate afișa oricare;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:5&lt;br /&gt;
:4 6 3 5 3&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:1 5&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:1&lt;br /&gt;
:4 6 3 5 3&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0567 - Pereche&lt;br /&gt;
def gaseste_pereche_potrivita(n, inaltimi):&lt;br /&gt;
    # calculăm diferența absolută între prima și ultima înălțime&lt;br /&gt;
    diferenta_primul_ultimul = abs(inaltimi[0] - inaltimi[-1])&lt;br /&gt;
    indice_elev1, indice_elev2 = 0, n - 1&lt;br /&gt;
&lt;br /&gt;
    # parcurgem lista de înălțimi pentru a găsi perechea cu cea mai mică diferență&lt;br /&gt;
    for i in range(n - 1):&lt;br /&gt;
        diferenta = abs(inaltimi[i] - inaltimi[i+1])&lt;br /&gt;
        if diferenta &amp;lt; diferenta_primul_ultimul:&lt;br /&gt;
            diferenta_primul_ultimul = diferenta&lt;br /&gt;
            indice_elev1, indice_elev2 = i, i+1&lt;br /&gt;
&lt;br /&gt;
    return indice_elev1 + 1, indice_elev2 + 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul de elevi: &amp;quot;))&lt;br /&gt;
    inaltimi = list(map(int, input(&amp;quot;Introduceți înălțimile: &amp;quot;).split()))&lt;br /&gt;
&lt;br /&gt;
    # verificarea restricțiilor&lt;br /&gt;
    if n &amp;lt; 2 or n &amp;gt; 1000 or max(inaltimi) &amp;gt; 1000:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        indice_elev1, indice_elev2 = gaseste_pereche_potrivita(n, inaltimi)&lt;br /&gt;
        print(f&amp;quot;Perechea potrivită este: {indice_elev1} {indice_elev2}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0133_-_Nume_Prenume&amp;diff=6739</id>
		<title>0133 - Nume Prenume</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0133_-_Nume_Prenume&amp;diff=6739"/>
		<updated>2023-05-21T10:40:08Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Scrieți un program care citește de la tastatură două șiruri formate fiecare din cel mult 20 de caractere. Primul șir reprezintă numele unei persoane, iar al doilea șir reprezintă prenumele aceleiași persoane. Atât numele, cât și prenumele sunt formate doar din litere ale alfabetului englez și fiecare conține cel puțin o consoană. Programul construiește în memorie și afișează pe ecran un al treilea șir de caractere, care va conține consoanele din prenumele citit dispuse în ordinea în care apar în prenume, urmate de exact un spațiu și de numele citit.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citeşte de la tastatură cele două șiruri.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afişează pe ecran șirul construit după regula precizată.&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:Popescu Vasile&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:Vsl Popescu&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:aaaaaa Vasile&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0133 - Nume Prenume&lt;br /&gt;
def verifica_sir(sir):&lt;br /&gt;
    # verificăm dacă șirul conține doar litere&lt;br /&gt;
    if not sir.isalpha():&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    consoane = &amp;quot;bcdfghjklmnpqrstvwxyz&amp;quot;&lt;br /&gt;
    # verificăm dacă șirul conține cel puțin o consoană&lt;br /&gt;
    for litera in sir.lower():&lt;br /&gt;
        if litera in consoane:&lt;br /&gt;
            return True&lt;br /&gt;
&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def construieste_sir(nume, prenume):&lt;br /&gt;
    sir_final = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # verificăm fiecare literă din prenume și adăugăm doar consoanele în șirul final&lt;br /&gt;
    for litera in prenume:&lt;br /&gt;
        if litera.lower() in &amp;quot;bcdfghjklmnpqrstvwxyz&amp;quot;:&lt;br /&gt;
            sir_final += litera&lt;br /&gt;
&lt;br /&gt;
    # adăugăm numele la finalul șirului&lt;br /&gt;
    sir_final += &amp;quot; &amp;quot; + nume&lt;br /&gt;
&lt;br /&gt;
    return sir_final&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # citim numele și prenumele de la tastatură&lt;br /&gt;
    nume = input(&amp;quot;Introduceți numele: &amp;quot;)&lt;br /&gt;
    prenume = input(&amp;quot;Introduceți prenumele: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # verificarea restricțiilor&lt;br /&gt;
    if verifica_sir(nume) and verifica_sir(prenume):&lt;br /&gt;
        # construim și afișăm șirul final&lt;br /&gt;
        sir_final = construieste_sir(nume, prenume)&lt;br /&gt;
        print(sir_final)&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0514_-_Sort_PIE&amp;diff=6738</id>
		<title>0514 - Sort PIE</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0514_-_Sort_PIE&amp;diff=6738"/>
		<updated>2023-05-21T10:28:25Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un vector cu n elemente, numere naturale. Afișați în ordine descrescătoare valorile din vector care sunt prime cu ultimul element al vectorului. &lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului. &lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran valorile cerute, în ordine descrescătoare, separate prin exact un spațiu. &lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000;&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 1.000.000.000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:8&lt;br /&gt;
:16 7 6 3 1 5 9 14&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:9 5 3 1&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0514 - Sort PIE&lt;br /&gt;
def sort():&lt;br /&gt;
    # citim numarul de elemente din sir, dar si vectorul de la tastatura&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    a = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    # sortam sirul in ordine descrescatoare&lt;br /&gt;
    for i in range(n - 2):&lt;br /&gt;
        for j in range(i + 1, n - 1):&lt;br /&gt;
            if a[i] &amp;lt; a[j]:&lt;br /&gt;
                a[i], a[j] = a[j], a[i]&lt;br /&gt;
&lt;br /&gt;
    # verificam restrictiile&lt;br /&gt;
    if 1 &amp;lt;= n &amp;lt;= 1000 and max(a) &amp;lt; 1000000000:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        # parcurgem fiecare element din sir si verificam daca este prim&lt;br /&gt;
        for i in range(n - 1):&lt;br /&gt;
            x = a[i]&lt;br /&gt;
            y = a[-1]&lt;br /&gt;
            while y:&lt;br /&gt;
                r = x % y&lt;br /&gt;
                x = y&lt;br /&gt;
                y = r&lt;br /&gt;
            if x == 1:&lt;br /&gt;
                print(a[i], end=&#039; &#039;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # apelam functia &lt;br /&gt;
    sort()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2804_-_Strncat&amp;diff=6737</id>
		<title>2804 - Strncat</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2804_-_Strncat&amp;diff=6737"/>
		<updated>2023-05-21T10:23:17Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Pentru un cuvânt format din litere mici ale alfabetului englez s și un număr natural x mai mic sau egal cu lungimea cuvântului, definim următoarea operație:&lt;br /&gt;
*dacă x este par, la s se vor adăuga primele sale x litere, în ordinea din șir;&lt;br /&gt;
*dacă x este impar, la s se vor adăuga primele sale x litere, în ordinea inversă din șir.&lt;br /&gt;
Se dă un cuvânt s și un șir de n numere naturale x[1], x[2], …, x[n]. Se aplică succesiv operația definită mai sus între șirul s și numerele din șir, în ordinea acestora. Afișați șirul s după aplicarea acestor operații.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură cuvântul s, numărul n și cele n elemente ale șirului.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran cuvântul rezultat.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*lungimea inițială a cuvântului este de cel mult 1000 de caractere;&lt;br /&gt;
*1 ≤ n ≤ 1000;&lt;br /&gt;
*fiecare element al șirului dat va fi mai mic sau egal cu minimul dintre 1000 și lungimea curentă a șirului s;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:alina&lt;br /&gt;
:3&lt;br /&gt;
:4 3 2&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:alinaalinilaal&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:alina&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#2804 - Strncat&lt;br /&gt;
def strncat(s, x):&lt;br /&gt;
    # verifica daca x este par&lt;br /&gt;
    if x % 2 == 0:&lt;br /&gt;
        # adauga primele x caractere din s la sfarsitul lui s&lt;br /&gt;
        s += s[:x]&lt;br /&gt;
    else:&lt;br /&gt;
        # adauga primele x caractere din s, dar inversate, la sfarsitul lui s&lt;br /&gt;
        s += s[:x][::-1]&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    # citeste cuvantul&lt;br /&gt;
    s = input(&amp;quot;Introduceți cuvântul: &amp;quot;)&lt;br /&gt;
    # citeste numarul de operatii&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul de operații: &amp;quot;))&lt;br /&gt;
    # citeste lista de numere&lt;br /&gt;
    x = list(map(int, input(&amp;quot;Introduceți numerele: &amp;quot;).split()))&lt;br /&gt;
&lt;br /&gt;
    # verificarea restricțiilor&lt;br /&gt;
    if n &amp;gt;= 1 and n &amp;lt;= 1000 and len(s) &amp;lt;= 1000 and all(i &amp;lt;= 1000 for i in x):&lt;br /&gt;
        # parcurge lista de numere si aplica fiecare operatie pe rand&lt;br /&gt;
        for i in x:&lt;br /&gt;
            s = strncat(s, i)&lt;br /&gt;
        print(s)&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1191_-_Arhitectura&amp;diff=6736</id>
		<title>1191 - Arhitectura</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1191_-_Arhitectura&amp;diff=6736"/>
		<updated>2023-05-21T10:19:24Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Primăria dorește să realizeze un proiect de sistematizare a orașului și pentru aceasta îl angajează pe arhitectul Gigel. Orașul constă în n clădiri; pentru fiecare se cunoaște înălțimea, iar Gigel trebuie să ordoneze descrescător aceste înălțimi.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură prima linie numărul n, apoi n numere naturale separate prin spații, reprezentând înălțimile celor n clădiri.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran n numere naturale, separate prin câte un spațiu, reprezentând înălțimile clădirilor, după ordonare.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000&lt;br /&gt;
*înălțimile clădirilor vor fi mai mici decât 1.000.000.000&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:5&lt;br /&gt;
:1 2 7 3 6&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:7 6 3 2 1&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#1191 - Arhitectura&lt;br /&gt;
def arhitectura():&lt;br /&gt;
    # citim numărul de înălțimi&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    # citim lista de înălțimi&lt;br /&gt;
    inaltimi = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    # verificăm restricțiile&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000 or any(h &amp;lt; 1 or h &amp;gt;= 1000000000 for h in inaltimi):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        # sortăm lista de înălțimi, în ordine descrescătoare&lt;br /&gt;
        inaltimi_ord = ordonare_descrescatoare(inaltimi)&lt;br /&gt;
        # afișăm lista sortată de înălțimi&lt;br /&gt;
        print(*inaltimi_ord)&lt;br /&gt;
&lt;br /&gt;
def ordonare_descrescatoare(lista):&lt;br /&gt;
    # sortează lista în ordine descrescătoare &lt;br /&gt;
    return sorted(lista, reverse=True)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # apelăm funcția arhitectura()&lt;br /&gt;
    arhitectura()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0084_-_Interschimbare_Litere&amp;diff=6735</id>
		<title>0084 - Interschimbare Litere</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0084_-_Interschimbare_Litere&amp;diff=6735"/>
		<updated>2023-05-21T10:13:20Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Să se scrie un program care citește un cuvânt și îl afișează după interschimbarea primei vocale cu ultima consoană.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citeşte de la tastatură un şir de caractere, reprezentând un cuvânt.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afişează pe ecran cuvântul obținut prin interschimbarea primei vocale cu ultima consoană.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*şirul de caractere citit va conţine cel mult 10 caractere, litere mari și mici ale alfabetului englez;&lt;br /&gt;
*se consideră vocale următoarele caractere: a e i o u A E I O U;&lt;br /&gt;
*dacă cuvântul conține doar vocale sau doar consoane se va afișa IMPOSIBIL;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:PrograM&lt;br /&gt;
;Ieșire&lt;br /&gt;
:PrMgrao&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:aeiou&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
:IMPOSIBIL&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;
#0084 - Interschimbare Litere&lt;br /&gt;
def interschimbare_vocale_si_consoane(cuvant):&lt;br /&gt;
    # definim lista de vocale și de consoane&lt;br /&gt;
    vocale = &amp;quot;aeiouAEIOU&amp;quot;&lt;br /&gt;
    consoane = &amp;quot;bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # inițializăm pozițiile vocalei și consoanei cu -1&lt;br /&gt;
    pozitie_vocala = -1&lt;br /&gt;
    pozitie_consoana = -1&lt;br /&gt;
&lt;br /&gt;
    # parcurgem cuântul și găsim prima apariție a vocalei și consoanei&lt;br /&gt;
    for i, litera in enumerate(cuvant):&lt;br /&gt;
        if litera in vocale and pozitie_vocala == -1:&lt;br /&gt;
            pozitie_vocala = i&lt;br /&gt;
        if litera in consoane:&lt;br /&gt;
            pozitie_consoana = i&lt;br /&gt;
&lt;br /&gt;
    # verificăm dacă am găsit atât o vocală cât și o consoană&lt;br /&gt;
    if pozitie_vocala == -1 or pozitie_consoana == -1:&lt;br /&gt;
        return &amp;quot;IMPOSIBIL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # realizăm interschimbarea&lt;br /&gt;
    cuvant_nou = cuvant[:pozitie_vocala] + cuvant[pozitie_consoana] + cuvant[pozitie_vocala + 1:pozitie_consoana] + cuvant[pozitie_vocala] + cuvant[pozitie_consoana + 1:]&lt;br /&gt;
    return cuvant_nou&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # citim cuvântul de la tastatură&lt;br /&gt;
    cuvant = input(&amp;quot;Introduceți cuvântul: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # apelăm funcția interschimbare_vocale_si_consoane&lt;br /&gt;
    cuvant_nou = interschimbare_vocale_si_consoane(cuvant)&lt;br /&gt;
&lt;br /&gt;
    # verificăm rezultatul și afișăm mesajele corespunzătoare&lt;br /&gt;
    if cuvant_nou == &amp;quot;IMPOSIBIL&amp;quot;:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        print(cuvant_nou)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        print(cuvant_nou)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0312_-_Putere_N&amp;diff=6734</id>
		<title>0312 - Putere N</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0312_-_Putere_N&amp;diff=6734"/>
		<updated>2023-05-21T10:06:10Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau două numere naturale &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; şi n. Calculaţi &amp;lt;math&amp;gt; {x}^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; şi n.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afișează pe ecran numărul P, valoarea calculată.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ x ≤ 1000;&lt;br /&gt;
*1 ≤ n ≤ 1000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:2 40&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:1099511627776&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0 0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0312 - Putere N&lt;br /&gt;
 def putere():&lt;br /&gt;
    # variabilele sunt inițializate și convertite în integer&lt;br /&gt;
    x = int(input(&amp;quot;Introduceti x: &amp;quot;))&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
    return x, n&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    # apelăm funcția și atribuim valorile returnate în x și n&lt;br /&gt;
    x, n = putere()&lt;br /&gt;
&lt;br /&gt;
    # verificarea restricțiilor&lt;br /&gt;
    if n &amp;gt;= 1 and x &amp;gt;= 1 and n &amp;lt;= 1000 and x &amp;lt;= 1000:&lt;br /&gt;
        # calcularea lui x ridicat la puterea n&lt;br /&gt;
        p = x ** n&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        print(&amp;quot;x la puterea n este:&amp;quot;, p)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0514_-_Sort_PIE&amp;diff=5913</id>
		<title>0514 - Sort PIE</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0514_-_Sort_PIE&amp;diff=5913"/>
		<updated>2023-05-05T20:28:15Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă:  ==Cerința== Se dă un vector cu n elemente, numere naturale. Afișați în ordine descrescătoare valorile din vector care sunt prime cu ultimul element al vectorului.  ==Date de intrare== Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.  ==Date de ieșire== Programul va afișa pe ecran valorile cerute, în ordine descrescătoare, separate prin exact un spațiu.  ==Restricții și precizări== *1 ≤ n ≤ 1000...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un vector cu n elemente, numere naturale. Afișați în ordine descrescătoare valorile din vector care sunt prime cu ultimul element al vectorului. &lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului. &lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran valorile cerute, în ordine descrescătoare, separate prin exact un spațiu. &lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000;&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 1.000.000.000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:8&lt;br /&gt;
:16 7 6 3 1 5 9 14&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:9 5 3 1&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0514 - Sort PIE&lt;br /&gt;
def sort():&lt;br /&gt;
    # citim numarul de elemente din sir, dar si vectorul de la tastatura&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    a = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    # sortam sirul in ordine descrescatoare&lt;br /&gt;
    for i in range(n - 2):&lt;br /&gt;
        for j in range(i + 1, n - 1):&lt;br /&gt;
            if a[i] &amp;lt; a[j]:&lt;br /&gt;
                a[i], a[j] = a[j], a[i]&lt;br /&gt;
&lt;br /&gt;
    # verificam restrictiile&lt;br /&gt;
    if 1 &amp;lt;= n &amp;lt;= 1000 and max(a) &amp;lt; 1000000000:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        # parcurgem fiecare element din sir si verificam daca este prim&lt;br /&gt;
        for i in range(n - 1):&lt;br /&gt;
            x = a[i]&lt;br /&gt;
            y = a[-1]&lt;br /&gt;
            while y:&lt;br /&gt;
                r = x % y&lt;br /&gt;
                x = y&lt;br /&gt;
                y = r&lt;br /&gt;
            if x == 1:&lt;br /&gt;
                print(a[i], end=&#039; &#039;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    sort()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0135_-_Sablon&amp;diff=5912</id>
		<title>0135 - Sablon</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0135_-_Sablon&amp;diff=5912"/>
		<updated>2023-05-05T20:00:09Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă:  ==Cerința== Un șir de caractere s este șablon pentru un șir de caractere x dacă are aceeași lungime cu x și este alcătuit numai din caractere ale mulțimii {*, #, ?}, iar pe fiecare poziție din s în care apare * în x apare vocală, pe fiecare poziție din s în care apare # în x apare consoană, iar pe fiecare poziție din s în care apare ? în x putem avea orice caracter. Scrieți un program care citește de tastatură două șiruri de cel mult 30 caractere de...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Un șir de caractere s este șablon pentru un șir de caractere x dacă are aceeași lungime cu x și este alcătuit numai din caractere ale mulțimii {*, #, ?}, iar pe fiecare poziție din s în care apare * în x apare vocală, pe fiecare poziție din s în care apare # în x apare consoană, iar pe fiecare poziție din s în care apare ? în x putem avea orice caracter. Scrieți un program care citește de tastatură două șiruri de cel mult 30 caractere de aceeași lungime care conțin doar litere mici ale alfabetului englez și construiește în memorie și apoi afișează pe ecran un cel mai bun șablon comun al lor, adică șablonul comun cu număr minim de caractere ?. &lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citeşte de la tastatură cele două șiruri, pe acelaşi rând, separate printr-un spaţiu. &lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afişează pe ecran cel mai bun șablon comun. &lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*se consideră vocale caracterele din mulțimea {a, e, i, o, u};&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:diamant pierdut&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#**#??#&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:tttttt mmmmm&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0135 - Sablon&lt;br /&gt;
def compare_strings(a, b):&lt;br /&gt;
    result = &#039;&#039;&lt;br /&gt;
    for i in range(len(a)):&lt;br /&gt;
        if (a[i] in [&#039;a&#039;, &#039;e&#039;, &#039;i&#039;, &#039;o&#039;, &#039;u&#039;]) and (b[i] in [&#039;a&#039;, &#039;e&#039;, &#039;i&#039;, &#039;o&#039;, &#039;u&#039;]):&lt;br /&gt;
            result += &#039;*&#039; # daca ambele caractere sunt vocale, adaugam un asterisc&lt;br /&gt;
        elif (a[i] in [&#039;a&#039;, &#039;e&#039;, &#039;i&#039;, &#039;o&#039;, &#039;u&#039;]) and (b[i] not in [&#039;a&#039;, &#039;e&#039;, &#039;i&#039;, &#039;o&#039;, &#039;u&#039;]):&lt;br /&gt;
            result += &#039;?&#039; #daca primul caracter este vocala, iar al doilea nu este, adaugam un semn de intrebare&lt;br /&gt;
        elif (a[i] not in [&#039;a&#039;, &#039;e&#039;, &#039;i&#039;, &#039;o&#039;, &#039;u&#039;]) and (b[i] in [&#039;a&#039;, &#039;e&#039;, &#039;i&#039;, &#039;o&#039;, &#039;u&#039;]):&lt;br /&gt;
            result += &#039;?&#039; #daca primul caracter nu este vocala, iar al doilea este vocala, adaugam un semn de intrebare&lt;br /&gt;
        else:&lt;br /&gt;
            result += &#039;#&#039; #daca ambele caractere nu sunt vocale, adaugam un diez&lt;br /&gt;
    return result&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    a, b = input().split()&lt;br /&gt;
    #verificarea restrictiilor&lt;br /&gt;
    if len(a) &amp;lt;= 30 and len(b) &amp;lt;= 30 and any(char in [&#039;a&#039;, &#039;e&#039;, &#039;i&#039;, &#039;o&#039;, &#039;u&#039;] for char in a + b):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        result = compare_strings(a, b)&lt;br /&gt;
        print(result)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3406_-_As_Easy_As_ABC&amp;diff=5911</id>
		<title>3406 - As Easy As ABC</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3406_-_As_Easy_As_ABC&amp;diff=5911"/>
		<updated>2023-05-05T19:02:46Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă: ﻿ ==Cerința== Fie N un număr întreg impar și un vector A cu N elemente. Pentru fiecare element &amp;lt;math&amp;gt;A_{i}&amp;lt;/math&amp;gt;, acesta se poate incrementa cu 1. Fiecare element sepoate incrementa cel mult odată. Mai mult, se pot realiza cel mult K incrementări. Scopul este de a maximiza medianul lui A. Medianul unui vector este definit ca fiind elementul din mijlocul vectorului după sortarea acestuia. De exemplu, medianul vectorului [5, 8, 2, 9, 1] este 5.  ==Date de intrare== Pr...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;﻿&lt;br /&gt;
==Cerința==&lt;br /&gt;
Fie N un număr întreg impar și un vector A cu N elemente. Pentru fiecare element &amp;lt;math&amp;gt;A_{i}&amp;lt;/math&amp;gt;, acesta se poate incrementa cu 1. Fiecare element sepoate incrementa cel mult odată. Mai mult, se pot realiza cel mult K incrementări. Scopul este de a maximiza medianul lui A. Medianul unui vector este definit ca fiind elementul din mijlocul vectorului după sortarea acestuia. De exemplu, medianul vectorului [5, 8, 2, 9, 1] este 5. &lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Prima linie conține un număr impar N și un întreg K. Pe a doua linie se află N numere separate prin spații naturale, reprezentând elementele vectorului. &lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul ce reprezintă maximul posibil al medianului după aplicarea operațiilor de incrementare. &lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ k ≤ n ≤ 1000, N e impar;&lt;br /&gt;
*1 ≤ &amp;lt;math&amp;gt;A_{i}&amp;lt;/math&amp;gt; ≤ 1000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:9 3&lt;br /&gt;
:4 4 4 8 2 2 9 9 1&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:5&lt;br /&gt;
==Explicație==&lt;br /&gt;
:Se pot incrementa elementele de pe pozițiile 1, 2 și 3. Valoarea comună reprezintă medianul maxim care se poate obține.&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0 0&lt;br /&gt;
:0 0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#3406 - As Easy As ABC&lt;br /&gt;
def maximize_median(vector, k):&lt;br /&gt;
    n = len(vector)&lt;br /&gt;
    mid = n // 2&lt;br /&gt;
    median = vector[mid]&lt;br /&gt;
&lt;br /&gt;
# pentru a crește valoarea medianei, vom parcurge elementele din stânga acesteia&lt;br /&gt;
    for i in range(mid - 1, -1, -1):&lt;br /&gt;
        if k &amp;lt;= 0:&lt;br /&gt;
            break&lt;br /&gt;
# calculăm diferența dintre valoarea medianei și elementul curent i, din stânga ei&lt;br /&gt;
# această diferență trebuie să fie mai mică sau egală cu numărul de operații disponibile k&lt;br /&gt;
        diff = min(vector[mid] - vector[i], k // (mid - i))&lt;br /&gt;
        # creștem valoarea medianei cu diferența calculată&lt;br /&gt;
        median += diff&lt;br /&gt;
# scădem din numărul total de operații k, numărul de operații realizate, pentru a crește valoarea medianei&lt;br /&gt;
        k -= diff * (mid - i)&lt;br /&gt;
&lt;br /&gt;
# pentru a crește valoarea medianei, vom parcurge elementele din dreapta medianei&lt;br /&gt;
    for i in range(mid + 1, n):&lt;br /&gt;
        if k &amp;lt;= 0:&lt;br /&gt;
            break&lt;br /&gt;
  # calculăm diferența dintre elementul curent i din dreapta medianei și valoarea acesteia&lt;br /&gt;
  # diferența trebuie să fie mai mică sau egală cu numărul de operații disponibile k&lt;br /&gt;
        diff = min(vector[i] - vector[mid], k // (i - mid))&lt;br /&gt;
  # creștem valoarea medianei cu diferența calculată&lt;br /&gt;
        median += diff&lt;br /&gt;
# scădem din numărul total de operații k, numărul de operații realizate pentru a crește valoarea medianei&lt;br /&gt;
        k -= diff * (i - mid)&lt;br /&gt;
&lt;br /&gt;
    # returnăm valoarea maximă a medianei&lt;br /&gt;
    return median&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    # citim numărul n de elemente din vector și numărul k de operații care pot fi realizate&lt;br /&gt;
    # elementele vectorului sunt sub forma de listă de numere&lt;br /&gt;
    n, k = map(int, input().split())&lt;br /&gt;
    vector = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    # verificăm restricțiile&lt;br /&gt;
    if n % 2 == 0 or n &amp;lt; 1 or n &amp;gt; 1000 or k &amp;lt; 1 or k &amp;gt; n or any(a &amp;lt; 1 or a &amp;gt; 1000 for a in vector):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        vector.sort()&lt;br /&gt;
        max_median = maximize_median(vector, k) &lt;br /&gt;
        # în caz contrar, apelăm funcția și afișăm valoarea maximă a medianei&lt;br /&gt;
        print(max_median)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1960_-_Perfecte&amp;diff=5910</id>
		<title>1960 - Perfecte</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1960_-_Perfecte&amp;diff=5910"/>
		<updated>2023-05-05T18:19:16Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă:  ==Cerința== Un număr natural nenul se numește perfect dacă este egal cu suma divizorilor săi naturali strict mai mici decât el.   Exemplu: 28 este număr perfect pentru că 28 = 1 + 2 + 4 + 7 + 14. Se dă un șir de n numere naturale. Pentru fiecare element din șir se va afișa valoarea 1 dacă acesta este perfect sau 0 în caz contrar.  ==Date de intrare== Programul citește de la tastatură numărul n și apoi n numere naturale.  ==Date de ieșire== Programul va afi...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Un număr natural nenul se numește perfect dacă este egal cu suma divizorilor săi naturali strict mai mici decât el. &lt;br /&gt;
&lt;br /&gt;
Exemplu: 28 este număr perfect pentru că 28 = 1 + 2 + 4 + 7 + 14. Se dă un șir de n numere naturale. Pentru fiecare element din șir se va afișa valoarea 1 dacă acesta este perfect sau 0 în caz contrar. &lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n și apoi n numere naturale. &lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran șirul de valori 1 și 0 separate prin câte un spațiu, conform cerinței. &lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*0 &amp;lt; n &amp;lt; 1000;&lt;br /&gt;
*numerele citite vor fi mai mici decât &amp;lt;math&amp;gt;10^{19}&amp;lt;/math&amp;gt;;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:5&lt;br /&gt;
:28 7 8 9 6&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:1 0 0 0 1&lt;br /&gt;
==Explicație==&lt;br /&gt;
:28 și 6 sunt numere perfecte.&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
#1960 - Perfecte&lt;br /&gt;
# definim funcția care primește ca argument un număr natural și verifică dacă acesta este perfect&lt;br /&gt;
def is_perfect(num):&lt;br /&gt;
    divisors_sum = 0&lt;br /&gt;
    for i in range(1, num):&lt;br /&gt;
        if num % i == 0:&lt;br /&gt;
            divisors_sum += i&lt;br /&gt;
    return divisors_sum == num&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    # citim de la tastatură numărul de elemente și vectorul de numere&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul de elemente: &amp;quot;))&lt;br /&gt;
    vector = list(map(int, input(&amp;quot;Introduceți elementele vectorului: &amp;quot;).split()))&lt;br /&gt;
    # verificarea restricțiilor&lt;br /&gt;
    if 0 &amp;lt; n &amp;lt; 1000 and all(0 &amp;lt;= i &amp;lt; 10**19 for i in vector):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        # pentru fiecare număr din vector, verificăm dacă este perfect și afișăm rezultatul&lt;br /&gt;
        for num in vector:&lt;br /&gt;
            if is_perfect(num):&lt;br /&gt;
                print(&amp;quot;1&amp;quot;, end=&amp;quot; &amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;0&amp;quot;, end=&amp;quot; &amp;quot;)&lt;br /&gt;
        print()&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2923_-_Min_Pal&amp;diff=5905</id>
		<title>2923 - Min Pal</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2923_-_Min_Pal&amp;diff=5905"/>
		<updated>2023-05-05T17:03:09Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă numărul natural n și un șir de n numere naturale. Determinați numărul minim de operații necesare pentru a face șirul palindromic. Singura operație admisă este înlocuirea a două elemente adiacente cu un element care conține suma lor.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului, separate prin spații.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul minim de operații pentru a transforma șirul dat într-un șir palindromic.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000.000;&lt;br /&gt;
&lt;br /&gt;
*elementele șirului dat vor fi mai mici decât 10.000;&lt;br /&gt;
&lt;br /&gt;
*un șir este palindromic dacă se citește la fel în ambele sensuri;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:4&lt;br /&gt;
&lt;br /&gt;
:1 4 5 1&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
:1&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:0&lt;br /&gt;
&lt;br /&gt;
:0&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se adună 4 cu 5, iar șirul devine 1 9 1&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;
&lt;br /&gt;
#2923 - Min Pal&lt;br /&gt;
&lt;br /&gt;
# definim funcția care primește un șir și returnează numărul minim de operații&lt;br /&gt;
# pentru a forma șirul palindromic&lt;br /&gt;
&lt;br /&gt;
def min_op_palindrome(arr):&lt;br /&gt;
&lt;br /&gt;
    n = len(arr) # lungimea șirului&lt;br /&gt;
&lt;br /&gt;
    operations = 0 # inițializăm numărul de operații cu zero&lt;br /&gt;
&lt;br /&gt;
    # iterăm prima jumătate a șirului&lt;br /&gt;
&lt;br /&gt;
    for i in range(n//2):&lt;br /&gt;
&lt;br /&gt;
        left = arr[i] # primul element, din perechea curentă&lt;br /&gt;
&lt;br /&gt;
        right = arr[n-i-1] # al doilea element din perechea curentă&lt;br /&gt;
&lt;br /&gt;
        # verificăm dacă unul dintre elemente este 0 și trecem la perechea următoare&lt;br /&gt;
&lt;br /&gt;
        if left == 0 or right == 0:&lt;br /&gt;
&lt;br /&gt;
            continue&lt;br /&gt;
&lt;br /&gt;
        # verificăm dacă cele două elemente sunt egale și trecem la perechea următoare&lt;br /&gt;
&lt;br /&gt;
        if left == right:&lt;br /&gt;
&lt;br /&gt;
            continue&lt;br /&gt;
&lt;br /&gt;
        # dacă primul element este mai mare decât al doilea, le interschimbăm&lt;br /&gt;
&lt;br /&gt;
        if left &amp;gt; right:&lt;br /&gt;
&lt;br /&gt;
            left, right = right, left&lt;br /&gt;
&lt;br /&gt;
        # în timp ce primul element este mai mic decât al doilea, îl dublăm și creștem numărul de operații&lt;br /&gt;
&lt;br /&gt;
        while left &amp;lt; right:&lt;br /&gt;
&lt;br /&gt;
            left *= 2&lt;br /&gt;
&lt;br /&gt;
            operations += 1&lt;br /&gt;
&lt;br /&gt;
    return operations # returnăm numărul total de operații&lt;br /&gt;
&lt;br /&gt;
# programul principal&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numărul de elemente: &amp;quot;)) # citim lungimea șirului de la tastatură&lt;br /&gt;
&lt;br /&gt;
    arr = list(map(int, input(&amp;quot;Introduceti elementele sirului: &amp;quot;).split())) # citim elementele șirului de la&lt;br /&gt;
&lt;br /&gt;
    # tastatură și le convertim într-o listă de numere întregi&lt;br /&gt;
&lt;br /&gt;
    # verificarea restricțiilor&lt;br /&gt;
&lt;br /&gt;
    if 1 &amp;lt;= n &amp;lt;= 1000000 and all(0 &amp;lt;= arr[i] &amp;lt; 10000 for i in range(n)):&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        print(min_op_palindrome(arr)) # afișăm numărul minim de operații necesare pentru a transforma șirul &lt;br /&gt;
&lt;br /&gt;
    else:&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2923_-_Min_Pal&amp;diff=5904</id>
		<title>2923 - Min Pal</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2923_-_Min_Pal&amp;diff=5904"/>
		<updated>2023-05-05T17:02:13Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă numărul natural n și un șir de n numere naturale. Determinați numărul minim de operații necesare pentru a face șirul palindromic. Singura operație admisă este înlocuirea a două elemente adiacente cu un element care conține suma lor.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului, separate prin spații.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul minim de operații pentru a transforma șirul dat într-un șir palindromic.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000.000;&lt;br /&gt;
&lt;br /&gt;
*elementele șirului dat vor fi mai mici decât 10.000;&lt;br /&gt;
&lt;br /&gt;
*un șir este palindromic dacă se citește la fel în ambele sensuri;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:4&lt;br /&gt;
&lt;br /&gt;
:1 4 5 1&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
:1&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:0&lt;br /&gt;
&lt;br /&gt;
:0&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se adună 4 cu 5, iar șirul devine 1 9 1&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;
&lt;br /&gt;
#2923 - Min Pal&lt;br /&gt;
&lt;br /&gt;
# definim funcția care primește un șir și returnează numărul minim de operații&lt;br /&gt;
# pentru a forma șirul palindromic&lt;br /&gt;
&lt;br /&gt;
def min_op_palindrome(arr):&lt;br /&gt;
&lt;br /&gt;
    n = len(arr) # lungimea șirului&lt;br /&gt;
&lt;br /&gt;
    operations = 0 # inițializăm numărul de operații cu zero&lt;br /&gt;
&lt;br /&gt;
    # iterăm prima jumătate a șirului&lt;br /&gt;
&lt;br /&gt;
    for i in range(n//2):&lt;br /&gt;
&lt;br /&gt;
        left = arr[i] # primul element, din perechea curentă&lt;br /&gt;
&lt;br /&gt;
        right = arr[n-i-1] # al doilea element din perechea curentă&lt;br /&gt;
&lt;br /&gt;
        # verificăm dacă unul dintre elemente este 0 și trecem la perechea următoare&lt;br /&gt;
&lt;br /&gt;
        if left == 0 or right == 0:&lt;br /&gt;
&lt;br /&gt;
            continue&lt;br /&gt;
&lt;br /&gt;
        # verificăm dacă cele două elemente sunt egale și trecem la perechea următoare&lt;br /&gt;
&lt;br /&gt;
        if left == right:&lt;br /&gt;
&lt;br /&gt;
            continue&lt;br /&gt;
&lt;br /&gt;
        # dacă primul element este mai mare decât al doilea, le interschimbăm&lt;br /&gt;
&lt;br /&gt;
        if left &amp;gt; right:&lt;br /&gt;
&lt;br /&gt;
            left, right = right, left&lt;br /&gt;
&lt;br /&gt;
        # în timp ce primul element este mai mic decât al doilea, îl dublăm și creștem numărul de operații&lt;br /&gt;
&lt;br /&gt;
        while left &amp;lt; right:&lt;br /&gt;
&lt;br /&gt;
            left *= 2&lt;br /&gt;
&lt;br /&gt;
            operations += 1&lt;br /&gt;
&lt;br /&gt;
    return operations # returnăm numărul total de operații&lt;br /&gt;
&lt;br /&gt;
# programul principal&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numărul de elemente: &amp;quot;)) # citim lungimea șirului de la tastatură&lt;br /&gt;
&lt;br /&gt;
    arr = list(map(int, input(&amp;quot;Introduceti elementele sirului: &amp;quot;).split())) # citim elementele șirului de la&lt;br /&gt;
&lt;br /&gt;
    # tastatură și le convertim într-o listă de numere întregi&lt;br /&gt;
&lt;br /&gt;
    # verificarea restricțiilor&lt;br /&gt;
&lt;br /&gt;
    if 1 &amp;lt;= n &amp;lt;= 1000000 and all(0 &amp;lt;= arr[i] &amp;lt; 10000 for i in range(n)):&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        print(min_op_palindrome(arr)) # afișăm numărul minim de operații necesare pentru a # transforma șirul într-un palindrom&lt;br /&gt;
&lt;br /&gt;
    else:&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2923_-_Min_Pal&amp;diff=5903</id>
		<title>2923 - Min Pal</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2923_-_Min_Pal&amp;diff=5903"/>
		<updated>2023-05-05T17:01:10Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă numărul natural n și un șir de n numere naturale. Determinați numărul minim de operații necesare pentru a face șirul palindromic. Singura operație admisă este înlocuirea a două elemente adiacente cu un element care conține suma lor.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului, separate prin spații.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul minim de operații pentru a transforma șirul dat într-un șir palindromic.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000.000;&lt;br /&gt;
&lt;br /&gt;
*elementele șirului dat vor fi mai mici decât 10.000;&lt;br /&gt;
&lt;br /&gt;
*un șir este palindromic dacă se citește la fel în ambele sensuri;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:4&lt;br /&gt;
&lt;br /&gt;
:1 4 5 1&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
:1&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:0&lt;br /&gt;
&lt;br /&gt;
:0&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se adună 4 cu 5, iar șirul devine 1 9 1&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;
&lt;br /&gt;
#2923 - Min Pal&lt;br /&gt;
&lt;br /&gt;
# definim funcția care primește un șir și returnează numărul minim de operații&lt;br /&gt;
# pentru a forma șirul palindromic&lt;br /&gt;
&lt;br /&gt;
def min_op_palindrome(arr):&lt;br /&gt;
&lt;br /&gt;
    n = len(arr) # lungimea șirului&lt;br /&gt;
&lt;br /&gt;
    operations = 0 # inițializăm numărul de operații cu zero&lt;br /&gt;
&lt;br /&gt;
    # iterăm prima jumătate a șirului&lt;br /&gt;
&lt;br /&gt;
    for i in range(n//2):&lt;br /&gt;
&lt;br /&gt;
        left = arr[i] # primul element, din perechea curentă&lt;br /&gt;
&lt;br /&gt;
        right = arr[n-i-1] # al doilea element din perechea curentă&lt;br /&gt;
&lt;br /&gt;
        # verificăm dacă unul dintre elemente este 0 și trecem la perechea următoare&lt;br /&gt;
&lt;br /&gt;
        if left == 0 or right == 0:&lt;br /&gt;
&lt;br /&gt;
            continue&lt;br /&gt;
&lt;br /&gt;
        # verificăm dacă cele două elemente sunt egale și trecem la perechea următoare&lt;br /&gt;
&lt;br /&gt;
        if left == right:&lt;br /&gt;
&lt;br /&gt;
            continue&lt;br /&gt;
&lt;br /&gt;
        # dacă primul element este mai mare decât al doilea, le interschimbăm&lt;br /&gt;
&lt;br /&gt;
        if left &amp;gt; right:&lt;br /&gt;
&lt;br /&gt;
            left, right = right, left&lt;br /&gt;
&lt;br /&gt;
        # în timp ce primul element este mai mic decât al doilea, îl dublăm și creștem numărul de operații&lt;br /&gt;
&lt;br /&gt;
        while left &amp;lt; right:&lt;br /&gt;
&lt;br /&gt;
            left *= 2&lt;br /&gt;
&lt;br /&gt;
            operations += 1&lt;br /&gt;
&lt;br /&gt;
    return operations # returnăm numărul total de operații&lt;br /&gt;
&lt;br /&gt;
# programul principal&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numărul de elemente: &amp;quot;)) # citim lungimea șirului de la tastatură&lt;br /&gt;
&lt;br /&gt;
    arr = list(map(int, input(&amp;quot;Introduceti elementele sirului: &amp;quot;).split())) # citim elementele șirului de la&lt;br /&gt;
&lt;br /&gt;
    # tastatură și le convertim într-o listă de numere întregi&lt;br /&gt;
&lt;br /&gt;
    # verificarea restricțiilor&lt;br /&gt;
&lt;br /&gt;
    if 1 &amp;lt;= n &amp;lt;= 1000000 and all(0 &amp;lt;= arr[i] &amp;lt; 10000 for i in range(n)):&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        print(min_op_palindrome(arr)) # afișăm numărul minim de operații necesare pentru a transforma # șirul într-un palindrom&lt;br /&gt;
&lt;br /&gt;
    else:&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2923_-_Min_Pal&amp;diff=5902</id>
		<title>2923 - Min Pal</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2923_-_Min_Pal&amp;diff=5902"/>
		<updated>2023-05-05T16:55:39Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă:  ==Cerința== Se dă numărul natural n și un șir de n numere naturale. Determinați numărul minim de operații necesare pentru a face șirul palindromic. Singura operație admisă este înlocuirea a două elemente adiacente cu un element care conține suma lor. ==Date de intrare== Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului, separate prin spații. ==Date de ieșire== Programul va afișa pe ecran numărul minim de operații pentru...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă numărul natural n și un șir de n numere naturale. Determinați numărul minim de operații necesare pentru a face șirul palindromic. Singura operație admisă este înlocuirea a două elemente adiacente cu un element care conține suma lor.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului, separate prin spații.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul minim de operații pentru a transforma șirul dat într-un șir palindromic.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000.000;&lt;br /&gt;
&lt;br /&gt;
*elementele șirului dat vor fi mai mici decât 10.000;&lt;br /&gt;
&lt;br /&gt;
*un șir este palindromic dacă se citește la fel în ambele sensuri;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:4&lt;br /&gt;
&lt;br /&gt;
:1 4 5 1&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
:1&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:0&lt;br /&gt;
&lt;br /&gt;
:0&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se adună 4 cu 5, iar șirul devine 1 9 1&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;
&lt;br /&gt;
#2923 - Min Pal&lt;br /&gt;
&lt;br /&gt;
# definim funcția care primește un șir și returnează numărul minim de operații&lt;br /&gt;
# pentru a forma șirul palindromic&lt;br /&gt;
&lt;br /&gt;
def min_op_palindrome(arr):&lt;br /&gt;
&lt;br /&gt;
n = len(arr) # lungimea șirului&lt;br /&gt;
&lt;br /&gt;
operations = 0 # inițializăm numărul de operații cu zero&lt;br /&gt;
&lt;br /&gt;
# iterăm prima jumătate a șirului&lt;br /&gt;
&lt;br /&gt;
for i in range(n//2):&lt;br /&gt;
&lt;br /&gt;
left = arr[i] # primul element, din perechea curentă&lt;br /&gt;
&lt;br /&gt;
right = arr[n-i-1] # al doilea element din perechea curentă&lt;br /&gt;
&lt;br /&gt;
# verificăm dacă unul dintre elemente este 0 și trecem la perechea următoare&lt;br /&gt;
&lt;br /&gt;
if left == 0 or right == 0:&lt;br /&gt;
&lt;br /&gt;
continue&lt;br /&gt;
&lt;br /&gt;
# verificăm dacă cele două elemente sunt egale și trecem la perechea următoare&lt;br /&gt;
&lt;br /&gt;
if left == right:&lt;br /&gt;
&lt;br /&gt;
continue&lt;br /&gt;
&lt;br /&gt;
# dacă primul element este mai mare decât al doilea, le interschimbăm&lt;br /&gt;
&lt;br /&gt;
if left &amp;gt; right:&lt;br /&gt;
&lt;br /&gt;
left, right = right, left&lt;br /&gt;
&lt;br /&gt;
# în timp ce primul element este mai mic decât al doilea, îl dublăm și creștem numărul de operații&lt;br /&gt;
&lt;br /&gt;
while left &amp;lt; right:&lt;br /&gt;
&lt;br /&gt;
left *= 2&lt;br /&gt;
&lt;br /&gt;
operations += 1&lt;br /&gt;
&lt;br /&gt;
return operations # returnăm numărul total de operații&lt;br /&gt;
&lt;br /&gt;
# programul principal&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
&lt;br /&gt;
n = int(input(&amp;quot;Introduceti numărul de elemente: &amp;quot;)) # citim lungimea șirului de la tastatură&lt;br /&gt;
&lt;br /&gt;
arr = list(map(int, input(&amp;quot;Introduceti elementele sirului: &amp;quot;).split())) # citim elementele șirului de la&lt;br /&gt;
&lt;br /&gt;
# tastatură și le convertim într-o listă de numere întregi&lt;br /&gt;
&lt;br /&gt;
# verificarea restricțiilor&lt;br /&gt;
&lt;br /&gt;
if 1 &amp;lt;= n &amp;lt;= 1000000 and all(0 &amp;lt;= arr[i] &amp;lt; 10000 for i in range(n)):&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(min_op_palindrome(arr)) # afișăm numărul minim de operații necesare pentru a transforma # șirul într-un palindrom&lt;br /&gt;
&lt;br /&gt;
else:&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0180_-_Sort_Min_Max&amp;diff=5457</id>
		<title>0180 - Sort Min Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0180_-_Sort_Min_Max&amp;diff=5457"/>
		<updated>2023-04-29T14:30:54Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă:  ==Cerința== Să se ordoneze crescător elementele dintr-un şir dat cuprinse între elementul de valoare maximă şi cel de valoare minimă. ==Date de intrare== Programul citește de la tastatură numărul n, iar apoi n numere naturale distincte, separate prin spaţii. ==Date de ieșire== Programul afișează pe ecran elementele şirului după ordonare. ==Restricții și precizări== *0 &amp;lt; n ≤ 1000; *elementele şirului sunt numere naturale mai mici decât 1.000.000; ==Exe...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Să se ordoneze crescător elementele dintr-un şir dat cuprinse între elementul de valoare maximă şi cel de valoare minimă.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale distincte, separate prin spaţii.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afișează pe ecran elementele şirului după ordonare.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*0 &amp;lt; n ≤ 1000;&lt;br /&gt;
*elementele şirului sunt numere naturale mai mici decât 1.000.000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:5&lt;br /&gt;
:10 20 15 7 12&lt;br /&gt;
;Ieșire&lt;br /&gt;
:10 7 15 20 12&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0180 - Sort Min Max&lt;br /&gt;
def min_max_pos(n, a):&lt;br /&gt;
    min_val = float(&#039;inf&#039;) # initializam minimul cu o valoare  mare&lt;br /&gt;
    max_val = float(&#039;-inf&#039;) # initializam maximul cu o valoare mica&lt;br /&gt;
    min_pos = 0&lt;br /&gt;
    max_pos = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if a[i] &amp;lt; min_val:&lt;br /&gt;
            min_val = a[i]&lt;br /&gt;
            min_pos = i&lt;br /&gt;
        if a[i] &amp;gt; max_val:&lt;br /&gt;
            max_val = a[i]&lt;br /&gt;
            max_pos = i&lt;br /&gt;
    if min_pos &amp;gt; max_pos: # verificam daca pozitia minima e mai mare decat pozitia maxima&lt;br /&gt;
        min_pos, max_pos = max_pos, min_pos # interschimbam pozitiile&lt;br /&gt;
    return min_pos, max_pos&lt;br /&gt;
&lt;br /&gt;
def sort_min_max(n, a):&lt;br /&gt;
    min_pos, max_pos = min_max_pos(n, a) # gasim pozitia minima si pozitia maxima&lt;br /&gt;
    for i in range(min_pos, max_pos): # parcurgem elementele din vector intre pozitia minima si &lt;br /&gt;
                                      # pozitia maxima&lt;br /&gt;
        for j in range(i+1, max_pos+1): # parcurgem elementele din vector intre pozitia i si &lt;br /&gt;
                                        # pozitia maxima&lt;br /&gt;
            if a[i] &amp;gt; a[j]: # daca elementul de pe pozitia i e mai mare decat cel de pe j&lt;br /&gt;
                a[i], a[j] = a[j], a[i] # interschimbam elementele&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul de elemente din vector: &amp;quot;))&lt;br /&gt;
    a = list(map(int, input(&amp;quot;Introduceti elementele vectorului: &amp;quot;).split()))&lt;br /&gt;
    # verificarea restrictiilor&lt;br /&gt;
    if 0 &amp;lt; n &amp;lt;= 1000 and all(1 &amp;lt;= x &amp;lt;= 10**6 for x in a):&lt;br /&gt;
        sort_min_max(n, a) # sortam elementele din vector intre pozitia minima si &lt;br /&gt;
                                   # pozitia maxima&lt;br /&gt;
        print(&amp;quot;Vectorul sortat:&amp;quot;)&lt;br /&gt;
        print(*a) # afisam vectorul sortat folosind * pentru a separa elementele cu spatiu&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&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>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0513_-_K_Sort_1&amp;diff=5396</id>
		<title>0513 - K Sort 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0513_-_K_Sort_1&amp;diff=5396"/>
		<updated>2023-04-29T11:39:42Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă:  ==Cerința== Se dă un șir cu n elemente, numere naturale, numerotate începând cu 1 și un număr k. Considerăm k subșiruri ale șirului, astfel: *primul subșir este format din elementele din șir numerotate cu 1, k+1, 2*k+1, … *al doilea subșir este format din elementele din șir numerotate cu 2, k+2, 2*k+2, … *… *al k-lea subșir este format din elementele din șir numerotate cu k, 2*k, 3*k, … Ordonați crescător fiecare dintre aceste subșiruri și afișa...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un șir cu n elemente, numere naturale, numerotate începând cu 1 și un număr k. Considerăm k subșiruri ale șirului, astfel:&lt;br /&gt;
*primul subșir este format din elementele din șir numerotate cu 1, k+1, 2*k+1, …&lt;br /&gt;
*al doilea subșir este format din elementele din șir numerotate cu 2, k+2, 2*k+2, …&lt;br /&gt;
*…&lt;br /&gt;
*al k-lea subșir este format din elementele din șir numerotate cu k, 2*k, 3*k, …&lt;br /&gt;
Ordonați crescător fiecare dintre aceste subșiruri și afișați șirul obținut.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele n și k, iar apoi n numere naturale, reprezentând elementele șirului.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran elementele șirului, separate prin exact un spațiu, după efectuarea operațiilor cerute.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ k &amp;lt; n ≤ 1000;&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 1.000.000.000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:11 3&lt;br /&gt;
:7 5 4 3 1 6 8 9 11 10 2&lt;br /&gt;
;Ieșire&lt;br /&gt;
:3 1 4 7 2 6 8 5 11 10 9&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0513 - K Sort 1&lt;br /&gt;
def sortare_intercalata(n, k, a):&lt;br /&gt;
    # sortare intercalata&lt;br /&gt;
    for i in range(k):&lt;br /&gt;
        v = []&lt;br /&gt;
        p = 0&lt;br /&gt;
        for j in range(i, n, k):&lt;br /&gt;
            v.append(a[j])&lt;br /&gt;
            p += 1&lt;br /&gt;
        v.sort()&lt;br /&gt;
        p = 0&lt;br /&gt;
        for j in range(i, n, k):&lt;br /&gt;
            a[j] = v[p]&lt;br /&gt;
            p += 1&lt;br /&gt;
    return a&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # citirea numarului de elemente din vector si a vectorului&lt;br /&gt;
    n, k = map(int, input(&amp;quot;Introduceti numarul de elemente si valoarea k: &amp;quot;).split())&lt;br /&gt;
    a = list(map(int, input(&amp;quot;Introduceti elementele vectorului (separate prin spatiu): &amp;quot;).split()))&lt;br /&gt;
&lt;br /&gt;
    # verificarea restrictiilor&lt;br /&gt;
    if 1 &amp;lt;= n &amp;lt;= 1000 and all(1 &amp;lt;= x &amp;lt;= 10**9 for x in a):&lt;br /&gt;
        a_sorted = sortare_intercalata(n, k, a)&lt;br /&gt;
        # afisarea vectorului sortat&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            print(a_sorted[i], end=&amp;quot; &amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4146_-_Sort_10&amp;diff=5386</id>
		<title>4146 - Sort 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4146_-_Sort_10&amp;diff=5386"/>
		<updated>2023-04-29T11:03:05Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă:  ==Cerința== Se dă un vector cu n elemente, numere naturale. Afișați în ordine descrescătoare valorile divizibile cu 10 din acest vector. ==Date de intrare== Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului. ==Date de ieșire== Programul va afișa pe ecran valorile divizibile cu 10 din vector, în ordine descrescătoare, separate prin exact un spațiu. Dacă în vector nu există numere divizibile cu 10, atu...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un vector cu n elemente, numere naturale. Afișați în ordine descrescătoare valorile divizibile cu 10 din acest vector.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran valorile divizibile cu 10 din vector, în ordine descrescătoare, separate prin exact un spațiu. Dacă în vector nu există numere divizibile cu 10, atunci se va afișa &amp;quot;NU EXISTA&amp;quot;.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000;&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 1.000.000.000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:7&lt;br /&gt;
:13 1 10 15 3 700 110&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:NU EXISTA&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
#4146 - Sort 10&lt;br /&gt;
def vector_desc():&lt;br /&gt;
    # citirea numarului de elemente din vector&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul de elemente: &amp;quot;))&lt;br /&gt;
    # initializarea vectorului si citirea elementelor&lt;br /&gt;
    a = []&lt;br /&gt;
    arr = input(f&amp;quot;Introduceti elementele vectorului: &amp;quot;).split()&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        x = int(arr[i])&lt;br /&gt;
        # verificarea daca elementul este multiplu de 5 si numar par&lt;br /&gt;
        if x % 5 == 0 and x % 2 == 0:&lt;br /&gt;
            a.append(x)&lt;br /&gt;
    return n, a&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n, a = vector_desc()&lt;br /&gt;
    # verificarea restrictiilor&lt;br /&gt;
    if 1 &amp;lt;= n &amp;lt;= 1000 and all(1 &amp;lt;= x &amp;lt;= 10**9 for x in a):&lt;br /&gt;
        # sortarea si afisarea vectorului&lt;br /&gt;
        a.sort(reverse=True)&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        print(&amp;quot; &amp;quot;.join(str(x) for x in a))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;NU EXISTA&amp;quot;)&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0512_-_Sort_Max&amp;diff=5325</id>
		<title>0512 - Sort Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0512_-_Sort_Max&amp;diff=5325"/>
		<updated>2023-04-29T08:39:19Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un vector cu n elemente, numere naturale distincte. Ordonați crescător elementele situate înaintea valorii maxime din vector și descrescător elementele situate după această valoare.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele n, iar apoi n numere naturale, reprezentând elementele vectorului.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran elementele vectorului, separate prin exact un spațiu, după efectuarea operațiilor cerute.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000;&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 1.000.000.000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:7&lt;br /&gt;
:13 1 10 15 3 7 11&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:1 10 13 15 11 7 3&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0512 - Sort Max&lt;br /&gt;
# definim o funcție pentru sortare&lt;br /&gt;
def sort_vector(n, a):&lt;br /&gt;
    # găsim valoarea maximă și indexul acesteia în vector&lt;br /&gt;
    max_val = max(a)&lt;br /&gt;
    max_index = a.index(max_val)&lt;br /&gt;
    # sortăm valorile de dinainte și de după valoarea maximă&lt;br /&gt;
    a[:max_index] = sorted(a[:max_index])&lt;br /&gt;
    a[max_index:] = sorted(a[max_index:], reverse=True)&lt;br /&gt;
    # returnăm elementele vectorului, sortate&lt;br /&gt;
    return a&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    # citim valorile de intrare&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    a = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    # verificăm restricțiile&lt;br /&gt;
    if n &amp;gt;= 2 and n &amp;lt;= 1000 and max(a) &amp;lt; 1000000000:&lt;br /&gt;
        # dacă valorile de intrare respectă restricțiile impuse, sortăm vectorul și îl afișăm&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        a = sort_vector(n, a)&lt;br /&gt;
        print(*a)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0512_-_Sort_Max&amp;diff=5318</id>
		<title>0512 - Sort Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0512_-_Sort_Max&amp;diff=5318"/>
		<updated>2023-04-29T07:44:49Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: Pagină nouă:  ==Cerința== Se dă un vector cu n elemente, numere naturale distincte. Ordonați crescător elementele situate înaintea valorii maxime din vector și descrescător elementele situate după această valoare. ==Date de intrare== Programul citește de la tastatură numerele n, iar apoi n numere naturale, reprezentând elementele vectorului. ==Date de ieșire== Programul va afișa pe ecran elementele vectorului, separate prin exact un spațiu, după efectuarea operațiilor cer...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un vector cu n elemente, numere naturale distincte. Ordonați crescător elementele situate înaintea valorii maxime din vector și descrescător elementele situate după această valoare.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele n, iar apoi n numere naturale, reprezentând elementele vectorului.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran elementele vectorului, separate prin exact un spațiu, după efectuarea operațiilor cerute.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000;&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 1.000.000.000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:7&lt;br /&gt;
:13 1 10 15 3 7 11&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:1 10 13 15 11 7 3&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
#0512 - Sort Max&lt;br /&gt;
# definim o funcție pentru sortare&lt;br /&gt;
def sort_vector(n, a):&lt;br /&gt;
    # găsim valoarea maximă și indexul acesteia în vector&lt;br /&gt;
    max_val = max(a)&lt;br /&gt;
    max_index = a.index(max_val)&lt;br /&gt;
    # sortăm valorile de dinainte și de după valoarea maximă&lt;br /&gt;
    a[:max_index] = sorted(a[:max_index])&lt;br /&gt;
    a[max_index:] = sorted(a[max_index:], reverse=True)&lt;br /&gt;
    # returnăm elementele vectorului, sortate&lt;br /&gt;
    return a&lt;br /&gt;
&lt;br /&gt;
# citim valorile de intrare&lt;br /&gt;
n = int(input())&lt;br /&gt;
a = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
# verificăm restricțiile&lt;br /&gt;
if n &amp;gt;= 2 and n &amp;lt;= 1000 and max(a) &amp;lt; 1000000000:&lt;br /&gt;
    # dacă valorile de intrare respectă restricțiile impuse, sortăm vectorul și îl afișăm&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    a = sort_vector(n, a)&lt;br /&gt;
    print(*a)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&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>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0511_-_K_Sort&amp;diff=5302</id>
		<title>0511 - K Sort</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0511_-_K_Sort&amp;diff=5302"/>
		<updated>2023-04-28T22:42:35Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un vector cu n elemente, numere naturale și un număr k. Ordonați crescător primele k elemente ale vectorului și descrescător ultimele n-k elemente.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele n și k, iar apoi n numere naturale, reprezentând elementele vectorului.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran elementele vectorului, separate prin exact un spațiu, după efectuarea operațiilor cerute.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ k &amp;lt; n ≤ 1000&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 1.000.000.000&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:7 3&lt;br /&gt;
:13 1 10 15 3 7 11&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:1 10 13 15 11 7 3&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0 7&lt;br /&gt;
:1 10 13 15 11 7 3&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0511 - K Sort&lt;br /&gt;
# definim functia care va citi si va returna un vector de n elemente, dat de la tastatura&lt;br /&gt;
def citeste_vector(n):&lt;br /&gt;
    return list(map(int, input().split()))&lt;br /&gt;
# definim functia care va returna primele k elemente in ordine crescatoare dintr-un vector dat&lt;br /&gt;
def ordonare_primele_k_elemente(k, vector):&lt;br /&gt;
    return sorted(vector[:k])&lt;br /&gt;
# definim functia care va returna ultimele n-k elemente in ordine descrescatoare&lt;br /&gt;
# dintr-un vector dat&lt;br /&gt;
def ordonare_ultimele_n_minus_k_elemente(n, k, vector):&lt;br /&gt;
    return sorted(vector[k:], reverse=True)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n, k = map(int, input().split())&lt;br /&gt;
    vector = citeste_vector(n)&lt;br /&gt;
    # verificarea restrictiilor&lt;br /&gt;
    if n &amp;lt; 2 or n &amp;gt; 1000 or k &amp;lt; 1 or k &amp;gt;= n or any(x &amp;gt;= 1000000000 for x in vector):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        primele_k_elemente = ordonare_primele_k_elemente(k, vector)&lt;br /&gt;
        ultimele_n_minus_k_elemente = ordonare_ultimele_n_minus_k_elemente(n, k, vector)&lt;br /&gt;
        print(*(primele_k_elemente + ultimele_n_minus_k_elemente)) # afisam rezultatul &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0618_-_Inaltimi&amp;diff=5301</id>
		<title>0618 - Inaltimi</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0618_-_Inaltimi&amp;diff=5301"/>
		<updated>2023-04-28T22:34:54Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau înălțimile a n copii, numerotați de la 1 la n, exprimate prin numere naturale. Afișați numerele de ordine ale copiilor în ordinea crescătoare a înălțimii lor.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații, reprezentând, în ordine, înălțimile copiilor.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran n numere naturale distincte cuprinse între 1 și n, separate prin exact un spațiu, reprezentând numerele de ordine ale copiilor în ordinea crescătoare a înălțimii.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 1000&lt;br /&gt;
*înălțimile copiilor vor fi numere naturale distincte din intervalul [1, 10.000]&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:7&lt;br /&gt;
:8 20 16 14 10 4 12&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:6 1 5 7 4 3 2&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0618 - Inaltimi&lt;br /&gt;
# definim o functie pentru citirea inaltimilor, aceasta va returna o lista de numere intregi&lt;br /&gt;
def citeste_inaltimi(n):&lt;br /&gt;
    inaltimi = list(map(int, input().split()))&lt;br /&gt;
    return inaltimi&lt;br /&gt;
# definim o functie pentru ordonarea crescatoare a inaltimilor si afisarea numerelor corespunzatoare&lt;br /&gt;
def ordonare_crescatoare_si_afisare(n, inaltimi):&lt;br /&gt;
    numere_ordine = list(range(1, n+1)) # definim o lista de numere de la 1 la n&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(i+1, n):&lt;br /&gt;
            if inaltimi[j] &amp;lt; inaltimi[i]: # comparam inaltimile iar daca sunt in ordine gresita, le &lt;br /&gt;
                                          # interschimbam&lt;br /&gt;
                inaltimi[i], inaltimi[j] = inaltimi[j], inaltimi[i]&lt;br /&gt;
                numere_ordine[i], numere_ordine[j] = numere_ordine[j], numere_ordine[i]&lt;br /&gt;
    print(*numere_ordine) # afisam numerele, ordonate crescator&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input()) # citim numarul de inaltimi&lt;br /&gt;
    inaltimi = citeste_inaltimi(n)  # apelam functia de citire a inaltimilor&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000 or (min(inaltimi) &amp;lt; 1 or max(inaltimi) &amp;gt; 10000): # verificarea &lt;br /&gt;
                                                                          # restrictiilor&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    ordonare_crescatoare_si_afisare(n, inaltimi) # apelam functia de ordonare si afisare a &lt;br /&gt;
                                                 # numerelor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0621_-_Numar_Lipsa&amp;diff=5300</id>
		<title>0621 - Numar Lipsa</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0621_-_Numar_Lipsa&amp;diff=5300"/>
		<updated>2023-04-28T22:20:59Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un șir cu n numere naturale. Determinați cel mai mic număr natural nenul care nu apare printre numerele date.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul determinat X.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 100;&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 1.000.000.000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:5&lt;br /&gt;
:4 2 7 6 1&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:Cel mai mic număr natural nenul care nu apare în șirul dat este: 3&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:1 2 4&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0621 - Numar Lipsa&lt;br /&gt;
def gaseste_numar(n, numere): # definim o functie care cauta cel mai mic numar natural nenul care &lt;br /&gt;
                              # nu apare in lista data&lt;br /&gt;
    numere_date = set(numere)  # convertim lista de numere intr-un set pentru a elimina dublurile&lt;br /&gt;
    for i in range(1, max(numere_date) + 2): # iteram prin numerele de la 1 pana la maximul din set &lt;br /&gt;
                                             # plus 2, trebuie sa cautam pana la urmatorul numar &lt;br /&gt;
                                             # natural nenul&lt;br /&gt;
        if i not in numere_date: # daca numarul nu se gaseste in set, atunci il returnam&lt;br /&gt;
            return i&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul de cifre din șir: &amp;quot;)) # citim numarul de cifre din sir si &lt;br /&gt;
                                                             # lista de numere de la tastatura&lt;br /&gt;
    numere = list(map(int, input(&amp;quot;Introduceți cifrele separate prin spațiu: &amp;quot;).split()))&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 100 or max(numere) &amp;gt; 1000000000: # verificarea restrictiilor&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
               &lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        X = gaseste_numar(n, numere) # apelam functia si afisam rezultatul&lt;br /&gt;
        print(f&amp;quot;Cel mai mic număr natural nenul care nu apare în șirul dat este: {X}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1573_-_Verif_Progresie&amp;diff=5298</id>
		<title>1573 - Verif Progresie</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1573_-_Verif_Progresie&amp;diff=5298"/>
		<updated>2023-04-28T22:13:24Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau n valori naturale. Stabiliți dacă există o progresie aritmetică cu rația număr natural mai mare decât 1 din care să facă parte toate aceste valori.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran mesajul DA , dacă există progresia aritmetică cerută, respectiv NU în caz contrar.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 2500;&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 2.000.000.000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:6&lt;br /&gt;
:2 10 12 16 20 18&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:DA&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#1573 - Verif Progresie&lt;br /&gt;
def progresie_aritmetica(numere): # definim o functie ce cauta o progresie progresie_aritmetica&lt;br /&gt;
                                  # formata din trei elemente intr-o lista de numere&lt;br /&gt;
    n = len(numere)&lt;br /&gt;
    if n &amp;lt; 3:&lt;br /&gt;
        return None&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(i+1, n):&lt;br /&gt;
            for k in range(j+1, n):&lt;br /&gt;
                if numere[i] + numere[k] == 2 * numere[j]:&lt;br /&gt;
                    return [numere[i], numere[j], numere[k]]&lt;br /&gt;
    return None&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul de valori: &amp;quot;)) # citim numărul de valori și lista de numere &lt;br /&gt;
                                                      # de la tastatură&lt;br /&gt;
    numere = list(map(int, input(&amp;quot;Introduceți valorile, separate prin spațiu: &amp;quot;).split()))&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 2500 or max(numere) &amp;gt; 2000000000: # verificarea restrictiilor&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        if progresie_aritmetica(numere): # apelam functia progresie_aritmetica si afisam DA daca &lt;br /&gt;
                                         # exista o progresie aritmetica si NU in caz contrar&lt;br /&gt;
            print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1573_-_Verif_Progresie&amp;diff=5297</id>
		<title>1573 - Verif Progresie</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1573_-_Verif_Progresie&amp;diff=5297"/>
		<updated>2023-04-28T22:11:43Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau n valori naturale. Stabiliți dacă există o progresie aritmetică cu rația număr natural mai mare decât 1 din care să facă parte toate aceste valori.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran mesajul DA , dacă există progresia aritmetică cerută, respectiv NU în caz contrar.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 2500;&lt;br /&gt;
*cele n numere citite vor fi mai mici decât 2.000.000.000;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:6&lt;br /&gt;
:2 10 12 16 20 18&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:DA&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#1573 - Verif Progresie&lt;br /&gt;
def progresie_aritmetica(numere): # definim o functie ce cauta o progresie progresie_aritmetica&lt;br /&gt;
                                  # formata din trei elemente intr-o lista de numere&lt;br /&gt;
    n = len(numere)&lt;br /&gt;
    if n &amp;lt; 3:&lt;br /&gt;
        return None&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(i+1, n):&lt;br /&gt;
            for k in range(j+1, n):&lt;br /&gt;
                if numere[i] + numere[k] == 2 * numere[j]:&lt;br /&gt;
                    return [numere[i], numere[j], numere[k]]&lt;br /&gt;
    return None&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul de valori: &amp;quot;)) # citim numărul de valori și lista de numere de la tastatură&lt;br /&gt;
    numere = list(map(int, input(&amp;quot;Introduceți valorile, separate prin spațiu: &amp;quot;).split()))&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 2500 or max(numere) &amp;gt; 2000000000: # verificarea restrictiilor&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        if progresie_aritmetica(numere): # apelam functia progresie_aritmetica si afisam DA daca exista o progresie aritmetica si NU in caz contrar&lt;br /&gt;
            print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0812_-_Gen_Mat_19&amp;diff=5296</id>
		<title>0812 - Gen Mat 19</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0812_-_Gen_Mat_19&amp;diff=5296"/>
		<updated>2023-04-28T21:53:01Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Scrieţi un program care citeşte de la tastatură un număr natural n şi construieşte în memorie o matrice cu n linii şi n coloane în care:&lt;br /&gt;
*toate elementele de pe prima coloană au valoarea 1;&lt;br /&gt;
*ultima linie conţine, în ordine strict crescătoare, numerele naturale din intervalul [1, n];&lt;br /&gt;
*oricare alt element este obţinut prin însumarea celor două elemente vecine cu el, aflate pe linia imediat următoare şi pe aceeaşi coloană cu el, respectiv pe aceeaşi linie cu el şi pe coloana anterioară.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afișează pe ecran matricea construită, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*3 ≤ n ≤ 15&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:4&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:1 5 15 35&lt;br /&gt;
:1 4 10 20&lt;br /&gt;
:1 3 6 10&lt;br /&gt;
:1 2 3 4&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:2 20&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0812 - Gen Mat 19&lt;br /&gt;
def construieste_matrice(n): # definim functia care construieste matricea&lt;br /&gt;
    A = [[0 for i in range(n)] for j in range(n)]  # initializam matricea cu valori de 0&lt;br /&gt;
&lt;br /&gt;
    for i in range(n): # adaugam 1 pe prima coloana&lt;br /&gt;
        A[i][0] = 1 &lt;br /&gt;
                       # adaugam numerele de la 1 la n pe ultima linie&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        A[n-1][i] = i+1&lt;br /&gt;
        &lt;br /&gt;
    for i in range(n-2, -1, -1): # parcurgem matricea de jos in sus si de la dreapta la stanga si &lt;br /&gt;
                                  # adaugam elementele&lt;br /&gt;
        for j in range(1, n):&lt;br /&gt;
            A[i][j] = A[i+1][j] + A[i][j-1]&lt;br /&gt;
&lt;br /&gt;
    return A&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
    if n &amp;lt; 3 or n &amp;gt; 15: #verificarea restrictiilor&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        A = construieste_matrice(n)&lt;br /&gt;
        for rand in A:&lt;br /&gt;
            print(&amp;quot; &amp;quot;.join(str(x) for x in rand)) # afisam matricea sub forma de tabela&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3304_-_Doua_zeci_Doua_zeci&amp;diff=5295</id>
		<title>3304 - Doua zeci Doua zeci</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3304_-_Doua_zeci_Doua_zeci&amp;diff=5295"/>
		<updated>2023-04-28T21:43:44Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Vasilica şi Viorica au primit cadou de la moşul un joc cu n jetoane pe care sunt scrise nişte numere. Cerinţa jocului este să afle dacă se pot alege câteva jetoane astfel încât produsul numerelor să fie 2020.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran DA dacă pot fi alese câteva jetoane cu produsul numerelor 2020, sau NU în caz contrar.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 100;&lt;br /&gt;
*cele n numere citite vor fi numere naturale mai mici decât 2021;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:5&lt;br /&gt;
:1 2 2020 3 7&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:DA&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
:NU&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;
#3304 - Doua zeci Doua zeci&lt;br /&gt;
def cauta_produs(numere):&lt;br /&gt;
    for i in range(len(numere)): # parcurgem lista numere&lt;br /&gt;
        for j in range(i+1, len(numere)): # cautam in continuare numere distincte&lt;br /&gt;
            if numere[i] * numere[j] == 2020: # daca gasim o pereche a carei produs este 2020&lt;br /&gt;
                return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:  # se verifica daca input-ul este valid, atunci se citeste o lista de &lt;br /&gt;
                            # numere de lungime n si se verifica daca exista o pereche de numere a &lt;br /&gt;
                            # caror produs este 2020, atunci se afiseaza &amp;quot;DA&amp;quot;, altfel, &amp;quot;NU&amp;quot;&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul de jetoane: &amp;quot;))&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        numere = list(map(int, input(&amp;quot;Introduceti numerele de pe jeton, separate prin spatiu: &amp;quot;).split()))&lt;br /&gt;
        if cauta_produs(numere):&lt;br /&gt;
            print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0993_-_Gen_Mat_20&amp;diff=5294</id>
		<title>0993 - Gen Mat 20</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0993_-_Gen_Mat_20&amp;diff=5294"/>
		<updated>2023-04-28T21:37:28Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Scrieţi un program care citeşte de la tastatură un număr natural n şi construieşte în memorie o matrice cu n linii şi n coloane în care fiecare linie a matricei să conţină o permutare a mulţimii {1,2,...,n}, astfel încât pe linii diferite ale matricei să se afle permutări diferite.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afișează pe ecran matricea construită, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*3 ≤ n ≤ 15&lt;br /&gt;
*orice matrice afișată care respectă condițiile problemei este corectă&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:4&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:1 4 2 3&lt;br /&gt;
:3 1 2 4&lt;br /&gt;
:3 4 1 2&lt;br /&gt;
:2 4 1 3&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:2 &lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0993 - Gen Mat 20&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
def construieste_matrice(n):&lt;br /&gt;
    A = [] # initializam matricea goala &lt;br /&gt;
    for i in range(n): # parcurgem liniile matricei&lt;br /&gt;
        permutare = list(range(1, n+1))  # initializam o lista cu numerele de la 1 la n&lt;br /&gt;
        random.shuffle(permutare) # amestecam aleator elementele listei permutare&lt;br /&gt;
        A.append(permutare) # adaugam permutarea in matricea A&lt;br /&gt;
    return A&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti n: &amp;quot;))&lt;br /&gt;
    if n &amp;lt; 3 or n &amp;gt; 15:  # verificam daca n respecta restrictiile impuse&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        A = construieste_matrice(n) # generam matricea conform dimensiunii n&lt;br /&gt;
        for rand in A: # afisam matricea linie cu linie&lt;br /&gt;
            print(&amp;quot; &amp;quot;.join(str(x) for x in rand)) # convertim fiecare element la sir il afisam&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2841_-_Gen_Mat_27&amp;diff=5290</id>
		<title>2841 - Gen Mat 27</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2841_-_Gen_Mat_27&amp;diff=5290"/>
		<updated>2023-04-28T21:28:29Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cerința==&lt;br /&gt;
Scrieţi un program care citește de la tastatură două numere naturale, m și n (2 ≤ m ≤ 20, 2 ≤ n ≤ 20), și construiește în memorie un tablou bidimensional A, cu m linii și n coloane, astfel încât parcurgându-l, linie cu linie, de sus în jos și fiecare linie de la stânga la dreapta, să se obțină șirul primelor n·m numere naturale, pare, care nu sunt divizibile cu 5, ordonat strict crescător. Programul afişează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele m și n.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afișează pe ecran tabloul construit, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
* 2 ≤ m, n ≤ 20&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:4 3&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:2 4 6&lt;br /&gt;
:8 12 14&lt;br /&gt;
:16 18 22&lt;br /&gt;
:24 26 28&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0 21&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#2841 - Gen Mat 27&lt;br /&gt;
# definim functia care returneaza daca un numar este par si nu este multiplu de 5&lt;br /&gt;
def numar_valid(num):&lt;br /&gt;
    return num % 2 == 0 and num % 5 != 0&lt;br /&gt;
&lt;br /&gt;
# definim functia matrice care construieste o matrice de m linii si n coloane  &lt;br /&gt;
def matrice(m, n):&lt;br /&gt;
    A = [] # initializam lista goala A care va contine randurile matricei&lt;br /&gt;
    numar_curent = 2 # incepem de la 2, primul numar valid&lt;br /&gt;
    for i in range(m): # parcurgem liniile matricei&lt;br /&gt;
        rand = [] # initializam lista goala&lt;br /&gt;
        for j in range(n): # parcurgem coloanele matricei&lt;br /&gt;
            while not numar_valid(numar_curent): # cautam primul numar valid, daca nu gasim, il cautam pe urmatorul&lt;br /&gt;
                numar_curent += 1&lt;br /&gt;
            rand.append(numar_curent) # adaugam numarul valid gasit in randul curent&lt;br /&gt;
            numar_curent += 1 # trecem la urmatorul numar pentru a-l valida si a adauga in randul curent&lt;br /&gt;
        A.append(rand) # adaugam randul curent in matricea finala A&lt;br /&gt;
    return A&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    m = int(input(&amp;quot;Introduceți numărul de linii: &amp;quot;))&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți numărul de coloane: &amp;quot;))&lt;br /&gt;
    if m &amp;lt; 2 or m &amp;gt; 20 or n &amp;lt; 2 or n &amp;gt; 20: # verificam restrictiile&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        A = matrice(m, n) # generam matricea conform dimensiunilor introduse&lt;br /&gt;
        for rand in A: # afisam matricea linie cu linie&lt;br /&gt;
            print(&amp;quot; &amp;quot;.join(str(x) for x in rand))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0226_-_Gen_Mat_13&amp;diff=4478</id>
		<title>0226 - Gen Mat 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0226_-_Gen_Mat_13&amp;diff=4478"/>
		<updated>2023-04-25T19:46:09Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Programul afișează pe ecran matricea construită, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*2≤n≤24&lt;br /&gt;
*1&amp;lt;a&amp;lt;n&lt;br /&gt;
*1&amp;lt;b&amp;lt;n&lt;br /&gt;
*liniile şi coloanele sunt numerotate de la 1&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:5 4 3&lt;br /&gt;
;Iesire&lt;br /&gt;
:1 1 0 2 2&lt;br /&gt;
:1 1 0 2 2&lt;br /&gt;
:1 1 0 2 2&lt;br /&gt;
:0 0 0 0 0&lt;br /&gt;
:3 3 0 4 4&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0 0 0&lt;br /&gt;
&lt;br /&gt;
;Iesire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#0226 - Gen Mat 13&lt;br /&gt;
def construieste_matrice(n, a, b):&lt;br /&gt;
    # inițializăm matricea cu zero&lt;br /&gt;
    matrice = [[0 for _ in range(n)] for _ in range(n)]&lt;br /&gt;
    # parcurgem fiecare element din matrice&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(n):&lt;br /&gt;
            # dacă elementul este pe poziția a sau b, setăm valoarea sa la zero&lt;br /&gt;
            if i == a-1 or j == b-1:&lt;br /&gt;
                matrice[i][j] = 0&lt;br /&gt;
            # dacă elementul se află deasupra și la stânga (a,b), setăm valoarea la 1&lt;br /&gt;
            elif i &amp;lt; a-1 and j &amp;lt; b-1:&lt;br /&gt;
                matrice[i][j] = 1&lt;br /&gt;
            # dacă elementul se află deasupra și la dreapta elementului (a,b), setăm valoarea la 2&lt;br /&gt;
            elif i &amp;lt; a-1 and j &amp;gt; b-1:&lt;br /&gt;
                matrice[i][j] = 2&lt;br /&gt;
            # dacă elementul se află sub (a,b) și la stânga, setăm valoarea sa la 3&lt;br /&gt;
            elif i &amp;gt; a-1 and j &amp;lt; b-1:&lt;br /&gt;
                matrice[i][j] = 3&lt;br /&gt;
            # dacă elementul se află sub (a,b) și la dreapta, setăm valoarea la 4&lt;br /&gt;
            else:&lt;br /&gt;
                matrice[i][j] = 4&lt;br /&gt;
&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # citim de la tastatură dimensiunea matricei și pozițiile a și b &lt;br /&gt;
    n = int(input(&amp;quot;Introduceți dimensiunea n a matricei: &amp;quot;))&lt;br /&gt;
    a = int(input(&amp;quot;Introduceți poziția liniei a: &amp;quot;))&lt;br /&gt;
    b = int(input(&amp;quot;Introduceți poziția coloanei b: &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    # verificăm restricțiile&lt;br /&gt;
    if a &amp;lt; 1 or a &amp;gt; n or b &amp;lt; 1 or b &amp;gt; n:&lt;br /&gt;
         print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        # construim matricea și o afișăm&lt;br /&gt;
        matrice = construieste_matrice(n, a, b)&lt;br /&gt;
        print()&lt;br /&gt;
        for linie in matrice:&lt;br /&gt;
            print(*linie)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3458_-_Sin_Cos&amp;diff=4470</id>
		<title>3458 - Sin Cos</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3458_-_Sin_Cos&amp;diff=4470"/>
		<updated>2023-04-25T19:22:11Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un număr natural x, reprezentând mărimea în grade sexagesimale a unui unghi. Să se afișeze sin(x) și cos(x).&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul x.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran două numere separate printr-un spațiu, reprezentând sin(x) și cos(x).&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ x ≤ 180;&lt;br /&gt;
*se recomandă afișarea rezultatelor cu cel puțin trei zecimale;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:30&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:0.5 0.866&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:181&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#3458 - Sin Cos&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def calculeaza_valori(x):&lt;br /&gt;
    sin_x = round(math.sin(math.radians(x)), 3) # calculăm valoarea sin și o rotunjim la 3 zecimale&lt;br /&gt;
    cos_x = round(math.cos(math.radians(x)), 3) # calculăm cos și rotunjim la 3 zecimale&lt;br /&gt;
    return sin_x, cos_x # returnăm cele două valori&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    x = int(input(&amp;quot;Introduceți unghiul x în grade: &amp;quot;)) # citim unghiul x, de la tastatură&lt;br /&gt;
    if x &amp;lt; 0 or x &amp;gt; 180: # verificăm restricțiile&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        sin_x, cos_x = calculeaza_valori(x) # apelăm funcția pentru a calcula valorile sin si cos&lt;br /&gt;
        print(sin_x, cos_x) # afișăm valorile obținute&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3458_-_Sin_Cos&amp;diff=4469</id>
		<title>3458 - Sin Cos</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3458_-_Sin_Cos&amp;diff=4469"/>
		<updated>2023-04-25T19:20:54Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un număr natural x, reprezentând mărimea în grade sexagesimale a unui unghi. Să se afișeze sin(x) și cos(x).&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul x.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran două numere separate printr-un spațiu, reprezentând sin(x) și cos(x).&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ x ≤ 180;&lt;br /&gt;
*se recomandă afișarea rezultatelor cu cel puțin trei zecimale;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:30&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:0.5 0.866&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:181&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#3458 - Sin Cos&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def calculeaza_valori(x):&lt;br /&gt;
    sin_x = round(math.sin(math.radians(x)), 3) # calculam valoarea sin si o rotunjim la 3 zecimale&lt;br /&gt;
    cos_x = round(math.cos(math.radians(x)), 3) # calculam valoarea cos si o rotunjim la 3 zecimale&lt;br /&gt;
    return sin_x, cos_x # returnam cele doua valori&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    x = int(input(&amp;quot;Introduceți unghiul x în grade: &amp;quot;)) # citim unghiul x de la tastatură&lt;br /&gt;
    if x &amp;lt; 0 or x &amp;gt; 180: # verificăm restricțiile&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        sin_x, cos_x = calculeaza_valori(x) # apelăm funcția pentru a calcula valorile sin si cos&lt;br /&gt;
        print(sin_x, cos_x) # afișăm valorile obținute&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0085_-_Interclasare_Asterisc&amp;diff=4468</id>
		<title>0085 - Interclasare Asterisc</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0085_-_Interclasare_Asterisc&amp;diff=4468"/>
		<updated>2023-04-25T19:12:17Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Să se scrie un program care citește un text și inserează după fiecare vocală caracterul &amp;quot;*&amp;quot;.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citeşte de la tastatură un şir de caractere, reprezentând textul dat.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afişează pe ecran textul obținut.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*şirul de caractere citit va conţine cel mult 100 de caractere, litere mici ale alfabetului englez și spații;&lt;br /&gt;
*se consideră vocale următoarele caractere: a, e, i, o, u;&lt;br /&gt;
*dacă cuvântul nu conține vocale se va afișa doar mesajul &amp;quot;FARA VOCALE&amp;quot;;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:ana are mere&lt;br /&gt;
;Ieșire&lt;br /&gt;
:a*na* a*re* me*re*&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:QWRTSFG&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
:FARA VOCALE&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;
#0085 - Interclasare Asterisc&lt;br /&gt;
# definim funcția care primește un text și inserează un asterisc după fiecare vocală&lt;br /&gt;
# cu excepția literelor majuscule&lt;br /&gt;
def inserare_vocale(text):&lt;br /&gt;
    vocale = &amp;quot;aeiou&amp;quot; # definim o variabilă care conține toate vocalele&lt;br /&gt;
    text_nou = &amp;quot;&amp;quot; # definim un șir vid pentru a stoca textul modificat&lt;br /&gt;
    for litera in text:&lt;br /&gt;
        text_nou += litera # adăugăm litera la textul modificat&lt;br /&gt;
        if litera.lower() in vocale: # dacă litera este vocală, adăugăm un asterisc după ea &lt;br /&gt;
            text_nou += &amp;quot;*&amp;quot;&lt;br /&gt;
    return text_nou # returnăm textul modificat&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    text = input(&amp;quot;Introduceți textul: &amp;quot;)&lt;br /&gt;
    text_fara_spatii = text.replace(&amp;quot; &amp;quot;, &amp;quot;&amp;quot;) # eliminăm spațiile din text&lt;br /&gt;
    if not any(litera.lower() in &amp;quot;aeiou&amp;quot; for litera in text_fara_spatii): # verificăm dacă textul &lt;br /&gt;
                                                                        # conține cel puțin o vocală&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        print(&amp;quot;FARA VOCALE&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
# apelăm funcția &#039;inserare_vocale&#039; pentru a modifica textul&lt;br /&gt;
        text_inserat = inserare_vocale(text) &lt;br /&gt;
        print(text_inserat) # afișăm textul modificat&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0085_-_Interclasare_Asterisc&amp;diff=4467</id>
		<title>0085 - Interclasare Asterisc</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0085_-_Interclasare_Asterisc&amp;diff=4467"/>
		<updated>2023-04-25T19:09:07Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Să se scrie un program care citește un text și inserează după fiecare vocală caracterul &amp;quot;*&amp;quot;.&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citeşte de la tastatură un şir de caractere, reprezentând textul dat.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afişează pe ecran textul obținut.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*şirul de caractere citit va conţine cel mult 100 de caractere, litere mici ale alfabetului englez și spații;&lt;br /&gt;
*se consideră vocale următoarele caractere: a, e, i, o, u;&lt;br /&gt;
*dacă cuvântul nu conține vocale se va afișa doar mesajul &amp;quot;FARA VOCALE&amp;quot;;&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:ana are mere&lt;br /&gt;
;Ieșire&lt;br /&gt;
:a*na* a*re* me*re*&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:QWRTSFG&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
:FARA VOCALE&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;
#0085 - Interclasare Asterisc&lt;br /&gt;
# definim funcția care primește un text și inserează un asterisc după fiecare vocală&lt;br /&gt;
# cu excepția literelor majuscule&lt;br /&gt;
def inserare_vocale(text):&lt;br /&gt;
    vocale = &amp;quot;aeiou&amp;quot; # definim o variabilă care conține toate vocalele&lt;br /&gt;
    text_nou = &amp;quot;&amp;quot; # definim un șir vid pentru a stoca textul modificat&lt;br /&gt;
    for litera in text:&lt;br /&gt;
        text_nou += litera # adăugăm litera la textul modificat&lt;br /&gt;
        if litera.lower() in vocale: # dacă litera este vocală, adăugăm un asterisc după ea &lt;br /&gt;
            text_nou += &amp;quot;*&amp;quot;&lt;br /&gt;
    return text_nou # returnăm textul modificat&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    text = input(&amp;quot;Introduceți textul: &amp;quot;)&lt;br /&gt;
    text_fara_spatii = text.replace(&amp;quot; &amp;quot;, &amp;quot;&amp;quot;) # eliminăm spațiile din text&lt;br /&gt;
    if not any(litera.lower() in &amp;quot;aeiou&amp;quot; for litera in text_fara_spatii): # verificăm dacă textul &lt;br /&gt;
                                                                        # conține cel puțin o vocală&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        print(&amp;quot;FARA VOCALE&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
# apelăm funcția &#039;inserare_vocale&#039; pentru a modifica textul&lt;br /&gt;
        text_inserat = inserare_vocale(text) &lt;br /&gt;
        print(text_inserat) # afișăm textul modificat&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4149_-_Inlocuire_Max&amp;diff=4464</id>
		<title>4149 - Inlocuire Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4149_-_Inlocuire_Max&amp;diff=4464"/>
		<updated>2023-04-25T18:56:35Z</updated>

		<summary type="html">&lt;p&gt;Adina Timiș: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un vector cu n numere naturale. Să se înlocuiască fiecare element cu cel mai mare număr care se poate obține din cifrele lui ș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ă numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului.&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul afișează pe ecran elementele vectorului, după înlocuire, în ordine inversă, separate prin exact un spațiu.&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*1 ≤ n ≤ 200;&lt;br /&gt;
*elementele vectorului vor fi cuprinse între 1 și 1.000.000&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:4&lt;br /&gt;
:170 104 24 2500&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:5200 42 410 710&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
:0&lt;br /&gt;
:0&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&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;
#4149 - Inlocuire Max&lt;br /&gt;
     # funcția sortează cifrele numărului primit, în ordine descrescătoare, iar mai apoi returnează &lt;br /&gt;
     # numărul astfel obținut&lt;br /&gt;
def transform(numar):&lt;br /&gt;
    cifre = [int(x) for x in str(numar)]&lt;br /&gt;
    cifre.sort(reverse=True)&lt;br /&gt;
    return int(&#039;&#039;.join(map(str, cifre)))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # citirea numărului de elemente&lt;br /&gt;
    n = int(input())&lt;br /&gt;
&lt;br /&gt;
    # citirea listei de elemente&lt;br /&gt;
    v = [int(x) for x in input().split()]&lt;br /&gt;
&lt;br /&gt;
    # verificarea restricțiilor de intrare&lt;br /&gt;
    if n &amp;gt;= 1 and n &amp;lt;= 200 and all(x &amp;gt; 0 and x &amp;lt;= 1000000 for x in v):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        # aplicarea functiei de transformare, la fiecare element din listă&lt;br /&gt;
        v_transform = [transform(x) for x in v]&lt;br /&gt;
&lt;br /&gt;
        # afișarea valorilor transformate, în ordine inversă&lt;br /&gt;
        for i in range(n - 1, -1, -1):&lt;br /&gt;
            print(v_transform[i], end=&#039; &#039;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adina Timiș</name></author>
	</entry>
</feed>