<?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=Vardai+Erwin</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=Vardai+Erwin"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/wiki/Special:Contributions/Vardai_Erwin"/>
	<updated>2026-05-01T05:57:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=Gazeta_Matematic%C4%83_nr_4_2022&amp;diff=6997</id>
		<title>Gazeta Matematică nr 4 2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=Gazeta_Matematic%C4%83_nr_4_2022&amp;diff=6997"/>
		<updated>2023-10-20T11:18:18Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28315 (Vasile Pop și Nicolae Mușuroia)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fie &amp;lt;math&amp;gt;P_1P_2\ldots P_n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;(n \geq 3)&amp;lt;/math&amp;gt; un poligon regulat și &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; un punct în interiorul poligonului. Notăm cu &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_2, \ldots, M_n&amp;lt;/math&amp;gt; simetricele punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; față de laturile poligonului. Arătați că, pentru orice alegere a punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, poligoanele &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt;M_2 \ldots M_n&amp;lt;/math&amp;gt; au același centru de greutate.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28315&amp;diff=6996</id>
		<title>28315</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28315&amp;diff=6996"/>
		<updated>2023-10-20T11:17:36Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;28315 (Vasile Pop și Nicolae Mușuroia)&#039;&#039;&#039; ‎&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Fie &amp;lt;math&amp;gt;P_1P_2\ldots P_n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;(n \geq 3)&amp;lt;/math&amp;gt; un poligon regulat și &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; un punct în interiorul poligonului. Notăm cu &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_2, \ldots, M_n&amp;lt;/math&amp;gt; simetricele punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; față de laturile poligonului. Arătați că, pentru orice alegere a punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, poligoanele &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt;M_2 \ldots M_n&amp;lt;/math&amp;gt; au același centru de greutate.&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Soluție:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Vom demonstra următoarea lemă: În planul complex, simetricul punctului &amp;lt;math&amp;gt;M(m)&amp;lt;/math&amp;gt; față de dreapta determinată de punctele &amp;lt;math&amp;gt;A(a)&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;B(b)&amp;lt;/math&amp;gt;, unde &amp;lt;math&amp;gt;|a| = |b| = 1&amp;lt;/math&amp;gt;, este punctul &amp;lt;math&amp;gt;M^{\prime}&lt;br /&gt;
&amp;lt;/math&amp;gt; de afix &amp;lt;math&amp;gt;m^{\prime} = a + b - ab\overline{m}&lt;br /&gt;
.&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; Într-adevăr, din faptul că mijlocul &amp;lt;math&amp;gt;N(n)&amp;lt;/math&amp;gt; al segmentului &amp;lt;math&amp;gt;[MM^{\prime}]&amp;lt;/math&amp;gt; aparține dreptei &amp;lt;math&amp;gt;AB&amp;lt;/math&amp;gt;, rezultă că &amp;lt;math&amp;gt;\frac{n-a}{b-a} \in \mathbb{R}&amp;lt;/math&amp;gt;, adică &amp;lt;math&amp;gt;\frac{n-a}{b-a}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;\frac{\overline{n}-\overline{a}}{\overline{b}-\overline{a}}, (1), &amp;lt;/math&amp;gt; iar  din &amp;lt;math&amp;gt;MM^{\prime} \perp AB&amp;lt;/math&amp;gt;, deducem că &amp;lt;math&amp;gt;\frac{m^{\prime}-m}{b-a} \in i\mathbb{R^*}&amp;lt;/math&amp;gt;, adică &amp;lt;math&amp;gt;\frac{m^{\prime}-m}{b-a} = - \frac{\overline{m^{\prime}}-\overline{m}}{\overline{b}-\overline{a}}, (2)&amp;lt;/math&amp;gt;. Având în vedere că &amp;lt;math&amp;gt;\overline{a} = \frac{1}{a}, \overline{b} = \frac{1}{b}&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;n = \frac{m+m^{\prime}}{2}&amp;lt;/math&amp;gt;, din relația &amp;lt;math&amp;gt;(1)&amp;lt;/math&amp;gt; rezultă că &amp;lt;math&amp;gt;m^{\prime}+ m = 2(a + b) - ab(\overline{m^{\prime}}+\overline{m}), (3)&amp;lt;/math&amp;gt;, iar din relația &amp;lt;math&amp;gt;(2)&amp;lt;/math&amp;gt; că &amp;lt;math&amp;gt;m^{\prime}-m=ab(\overline{m^{\prime}}-\overline{m}), (4).&amp;lt;/math&amp;gt; Adunând egalitățile &amp;lt;math&amp;gt;(3)&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;(4)&amp;lt;/math&amp;gt; obținem &amp;lt;math&amp;gt;m^{\prime}=a+b-ab\overline{m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; Revenind la problemă, considerăm un reper cartezian cu originea în centrul  poligonului, astfel încât afixele punctelor &amp;lt;math&amp;gt;P_n&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;P_1&amp;lt;/math&amp;gt; să fie &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, respectiv &amp;lt;math&amp;gt;\epsilon = \cos\frac{2\pi}{n}+i\sin\frac{2\pi}{n}&amp;lt;/math&amp;gt;. Ca urmare, afixul punctului &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; este &amp;lt;math&amp;gt;\epsilon^k&amp;lt;/math&amp;gt;, pentru orice &amp;lt;math&amp;gt;k \in \{1, 2, \ldots, n\}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; Fie &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; afixul punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt; m_k&amp;lt;/math&amp;gt; afixul punctului &amp;lt;math&amp;gt;M_k, 1 \leq k \leq n.&amp;lt;/math&amp;gt; Folosind lema, rezultă că &amp;lt;math&amp;gt; m_k=\epsilon^k+\epsilon^{k+1}-\epsilon^{2k+1} \overline{m}&amp;lt;/math&amp;gt;, pentru orice &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;. În consecință,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sum_{k=1}^{n}m_k=(1+\epsilon) \sum_{k=1}^{n}\epsilon^k+\overline{m} \cdot \sum_{k=1}^{n}\epsilon^{2k+1}=(1+\epsilon)\cdot \epsilon \cdot \frac{\epsilon^n-1}{\epsilon-1}+\overline{m}\cdot\epsilon^3\cdot\frac{\epsilon^{2n}-1}{\epsilon^2-1}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
, deci centrul de greutate al poligonului &amp;lt;math&amp;gt;M_1M_2 \ldots M_n&amp;lt;/math&amp;gt; este originea, indiferent de alegerea punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=Gazeta_Matematic%C4%83&amp;diff=6989</id>
		<title>Gazeta Matematică</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=Gazeta_Matematic%C4%83&amp;diff=6989"/>
		<updated>2023-10-20T10:42:52Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Această pagină conține o listă cu numerele revistei &#039;&#039;[https://gmb.ssmr.ro/ Gazeta Matematică]&#039;&#039; care conțin articole/probleme cu autori membri ai [https://ssmr.cunbm.utcluj.ro/ Filialei Maramureș] a [https://ssmr.ro/ Societății de Științe Matematice din România].&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Anul&lt;br /&gt;
!Numărul &lt;br /&gt;
!Numărul problemei&lt;br /&gt;
|-&lt;br /&gt;
|2022&lt;br /&gt;
|4 - [[Gazeta Matematică nr 4 2022|link]]&lt;br /&gt;
|-&lt;br /&gt;
|2018&lt;br /&gt;
|4 - [[Gazeta Matematică nr 4 2018|link]]&lt;br /&gt;
|&lt;br /&gt;
* [[S:E18.128]]&lt;br /&gt;
* [[S:E18.131]]&lt;br /&gt;
* [[S:E18.154]]&lt;br /&gt;
|-&lt;br /&gt;
|2015&lt;br /&gt;
|1 - [[Gazeta Matematică nr 27020 2015|link]]&lt;br /&gt;
|&lt;br /&gt;
* [[27020]]&lt;br /&gt;
|-&lt;br /&gt;
|2022&lt;br /&gt;
|4 - [[Gazeta Matematică nr 28315 2022|link]]&lt;br /&gt;
|&lt;br /&gt;
* [[28315]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=28315&amp;diff=6987</id>
		<title>28315</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=28315&amp;diff=6987"/>
		<updated>2023-10-20T10:37:11Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: Pagină nouă: &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;#039;&amp;#039;&amp;#039;28315.&amp;#039;&amp;#039;&amp;#039; ‎&amp;#039;&amp;#039;&amp;amp;nbsp; &amp;amp;nbsp; Fie &amp;lt;math&amp;gt;P_1P_2\ldots P_n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;(n \geq 3)&amp;lt;/math&amp;gt; un poligon regulat și &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; un punct în interiorul poligonului. Notăm cu &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_2, \ldots, M_n&amp;lt;/math&amp;gt; simetricele punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; față de laturile poligonului. Arătați că, pentru orice alegere a punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, poligoanele &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt;M_2 \ldots M_n&amp;lt;/math&amp;gt; au același centru de greutate.&amp;#039;&amp;#039; ::::::&amp;#039;...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&#039;&#039;&#039;28315.&#039;&#039;&#039; ‎&#039;&#039;&amp;amp;nbsp; &amp;amp;nbsp; Fie &amp;lt;math&amp;gt;P_1P_2\ldots P_n&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;(n \geq 3)&amp;lt;/math&amp;gt; un poligon regulat și &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; un punct în interiorul poligonului. Notăm cu &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;M_2, \ldots, M_n&amp;lt;/math&amp;gt; simetricele punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; față de laturile poligonului. Arătați că, pentru orice alegere a punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;, poligoanele &amp;lt;math&amp;gt;M_1&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt;M_2 \ldots M_n&amp;lt;/math&amp;gt; au același centru de greutate.&#039;&#039;&lt;br /&gt;
::::::&#039;&#039;&#039;&#039;&#039;Vasile Pop&#039;&#039;, Cluj-Napoca și &#039;&#039;Nicolae Mușuroia&#039;&#039;, Baia Mare&#039;&#039;&#039;&lt;br /&gt;
‎&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&#039;&#039;&#039;&#039;&#039;Soluție.&#039;&#039;&#039;&#039;&#039; Vom demonstra următoarea lemă: În planul complex, simetricul punctului &amp;lt;math&amp;gt;M(m)&amp;lt;/math&amp;gt; față de dreapta determinată de punctele &amp;lt;math&amp;gt;A(a)&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;B(b)&amp;lt;/math&amp;gt;, unde &amp;lt;math&amp;gt;|a| = |b| = 1&amp;lt;/math&amp;gt;, este punctul &amp;lt;math&amp;gt;M^{\prime}&lt;br /&gt;
&amp;lt;/math&amp;gt; de afix &amp;lt;math&amp;gt;m^{\prime} = a + b - ab\overline{m}&lt;br /&gt;
.&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; Într-adevăr, din faptul că mijlocul &amp;lt;math&amp;gt;N(n)&amp;lt;/math&amp;gt; al segmentului &amp;lt;math&amp;gt;[MM^{\prime}]&amp;lt;/math&amp;gt; aparține dreptei &amp;lt;math&amp;gt;AB&amp;lt;/math&amp;gt;, rezultă că &amp;lt;math&amp;gt;\frac{n-a}{b-a} \in \mathbb{R}&amp;lt;/math&amp;gt;, adică &amp;lt;math&amp;gt;\frac{n-a}{b-a}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;\frac{\overline{n}-\overline{a}}{\overline{b}-\overline{a}}, (1), &amp;lt;/math&amp;gt; iar  din &amp;lt;math&amp;gt;MM^{\prime} \perp AB&amp;lt;/math&amp;gt;, deducem că &amp;lt;math&amp;gt;\frac{m^{\prime}-m}{b-a} \in i\mathbb{R^*}&amp;lt;/math&amp;gt;, adică &amp;lt;math&amp;gt;\frac{m^{\prime}-m}{b-a} = - \frac{\overline{m^{\prime}}-\overline{m}}{\overline{b}-\overline{a}}, (2)&amp;lt;/math&amp;gt;. Având în vedere că &amp;lt;math&amp;gt;\overline{a} = \frac{1}{a}, \overline{b} = \frac{1}{b}&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;n = \frac{m+m^{\prime}}{2}&amp;lt;/math&amp;gt;, din relația &amp;lt;math&amp;gt;(1)&amp;lt;/math&amp;gt; rezultă că &amp;lt;math&amp;gt;m^{\prime}+ m = 2(a + b) - ab(\overline{m^{\prime}}+\overline{m}), (3)&amp;lt;/math&amp;gt;, iar din relația &amp;lt;math&amp;gt;(2)&amp;lt;/math&amp;gt; că &amp;lt;math&amp;gt;m^{\prime}-m=ab(\overline{m^{\prime}}-\overline{m}), (4).&amp;lt;/math&amp;gt; Adunând egalitățile &amp;lt;math&amp;gt;(3)&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;(4)&amp;lt;/math&amp;gt; obținem &amp;lt;math&amp;gt;m^{\prime}=a+b-ab\overline{m}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; Revenind la problemă, considerăm un reper cartezian cu originea în centrul  poligonului, astfel încât afixele punctelor &amp;lt;math&amp;gt;P_n&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;P_1&amp;lt;/math&amp;gt; să fie &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, respectiv &amp;lt;math&amp;gt;\epsilon = \cos\frac{2\pi}{n}+i\sin\frac{2\pi}{n}&amp;lt;/math&amp;gt;. Ca urmare, afixul punctului &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; este &amp;lt;math&amp;gt;\epsilon^k&amp;lt;/math&amp;gt;, pentru orice &amp;lt;math&amp;gt;k \in \{1, 2, \ldots, n\}&lt;br /&gt;
&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; Fie &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; afixul punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt; m_k&amp;lt;/math&amp;gt; afixul punctului &amp;lt;math&amp;gt;M_k, 1 \leq k \leq n.&amp;lt;/math&amp;gt; Folosind lema, rezultă că &amp;lt;math&amp;gt; m_k=\epsilon^k+\epsilon^{k+1}-\epsilon^{2k+1} \overline{m}&amp;lt;/math&amp;gt;, pentru orice &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;. În consecință,&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sum_{k=1}^{n}m_k=(1+\epsilon) \sum_{k=1}^{n}\epsilon^k+\overline{m} \cdot \sum_{k=1}^{n}\epsilon^{2k+1}=(1+\epsilon)\cdot \epsilon \cdot \frac{\epsilon^n-1}{\epsilon-1}+\overline{m}\cdot\epsilon^3\cdot\frac{\epsilon^{2n}-1}{\epsilon^2-1}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
, deci centrul de greutate al poligonului &amp;lt;math&amp;gt;M_1M_2 \ldots M_n&amp;lt;/math&amp;gt; este originea, indiferent de alegerea punctului &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=Gazeta_Matematic%C4%83&amp;diff=6986</id>
		<title>Gazeta Matematică</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=Gazeta_Matematic%C4%83&amp;diff=6986"/>
		<updated>2023-10-20T07:40:27Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Această pagină conține o listă cu numerele revistei &#039;&#039;[https://gmb.ssmr.ro/ Gazeta Matematică]&#039;&#039; care conțin articole/probleme cu autori membri ai [https://ssmr.cunbm.utcluj.ro/ Filialei Maramureș] a [https://ssmr.ro/ Societății de Științe Matematice din România].&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Anul&lt;br /&gt;
!Numărul &lt;br /&gt;
!Numărul problemei&lt;br /&gt;
|-&lt;br /&gt;
|2018&lt;br /&gt;
|4 - [[Gazeta Matematică nr 4 2018|link]]&lt;br /&gt;
|&lt;br /&gt;
* [[S:E18.128]]&lt;br /&gt;
* [[S:E18.131]]&lt;br /&gt;
* [[S:E18.154]]&lt;br /&gt;
|-&lt;br /&gt;
|2015&lt;br /&gt;
|1 - [[Gazeta Matematică nr 27020 2015|link]]&lt;br /&gt;
|&lt;br /&gt;
* [[27020]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
* [[28315]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3813_-_Unghiuri&amp;diff=6216</id>
		<title>3813 - Unghiuri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3813_-_Unghiuri&amp;diff=6216"/>
		<updated>2023-05-07T20:30:00Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Explicație */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Aflati masurile unghiurilor &#039;&#039;&#039;A, B, C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură lungimile laturilor &#039;&#039;&#039;AB, BC, AC&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran masura unghiurilor &#039;&#039;&#039;A, B, C&#039;&#039;&#039; cu &#039;&#039;&#039;2&#039;&#039;&#039; zecimale exacte daca triunghiul este valid, altfel se afiseaza mesajul &#039;&#039;&#039;Imposibil&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ AB,BC,AC ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:7 8 6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:57.91 75.52 46.57&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:Imposibil&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_triangle(a, b, c):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifica daca triunghiul cu laturile a, b si c este valid.&lt;br /&gt;
    Returneaza True daca triunghiul este valid, altfel False.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if int(a) + int(b) &amp;lt;= int(c) or int(a) + int(c) &amp;lt;= int(b) or int(b) + int(c) &amp;lt;= int(a):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare2(a, b, c):&lt;br /&gt;
    return 1 &amp;lt;= int(a) &amp;lt;= 1000 and 1 &amp;lt;= int(b) &amp;lt;= 1000 and 1 &amp;lt;= int(c) &amp;lt;= 1000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_angles(a, b, c):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Calculeaza masurile unghiurilor triunghiului cu laturile a, b si c.&lt;br /&gt;
    Returneaza un tuple cu valorile ungiurilor in ordinea A, B, C.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if not validate_triangle(a, b, c):&lt;br /&gt;
        return &amp;quot;Imposibil&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    angle_a = round(math.degrees(math.acos((b ** 2 + c ** 2 - a ** 2) / (2 * b * c))), 2)&lt;br /&gt;
    angle_b = round(math.degrees(math.acos((a ** 2 + c ** 2 - b ** 2) / (2 * a * c))), 2)&lt;br /&gt;
    angle_c = round(math.degrees(math.acos((a ** 2 + b ** 2 - c ** 2) / (2 * a * b))), 2)&lt;br /&gt;
&lt;br /&gt;
    return (angle_a, angle_b, angle_c)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    a, b, c = map(str, input().split())&lt;br /&gt;
    if validare2(a, b, c):&lt;br /&gt;
        a, b, c = float(a), float(b), float(c)&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        angles = calculate_angles(a, b, c)&lt;br /&gt;
        if angles == &amp;quot;Imposibil&amp;quot;:&lt;br /&gt;
            print(&amp;quot;Imposibil&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(*angles)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Acest program calculează măsurile unghiurilor unui triunghi dat de lungimile laturilor sale.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_triangle(a, b, c) primește ca parametrii lungimile laturilor unui triunghi și verifică dacă triunghiul respectiv este valid, adică îndeplinește condițiile de existență ale unui triunghi: fiecare latură trebuie să fie mai mică decât suma celorlalte două laturi. Dacă triunghiul este valid, funcția returnează True, în caz contrar returnează False.&lt;br /&gt;
&lt;br /&gt;
Funcția validare2(a, b, c) verifică dacă laturile triunghiului se încadrează în limitele impuse, în caz afirmativ returnează True, în caz contrar returnează False.&lt;br /&gt;
&lt;br /&gt;
Funcția calculate_angles(a, b, c) primește ca parametrii lungimile laturilor triunghiului și calculează măsurile unghiurilor acestuia folosind formula lui Cosinus. Dacă triunghiul nu este valid, funcția returnează &amp;quot;Imposibil&amp;quot;, altfel returnează un tuplu cu măsurile unghiurilor în ordinea A, B, C.&lt;br /&gt;
&lt;br /&gt;
În funcția principală (if __name__ == &amp;quot;__main__&amp;quot;:) se citesc lungimile laturilor triunghiului sub forma unor string-uri, se verifică dacă acestea respectă limitele impuse, apoi se convertesc în float-uri și se calculează măsurile unghiurilor triunghiului. Dacă triunghiul nu este valid, se afișează &amp;quot;Imposibil&amp;quot;, altfel se afișează măsurile unghiurilor.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3813_-_Unghiuri&amp;diff=6215</id>
		<title>3813 - Unghiuri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3813_-_Unghiuri&amp;diff=6215"/>
		<updated>2023-05-07T20:27:56Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Rezolvare ver. 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Aflati masurile unghiurilor &#039;&#039;&#039;A, B, C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură lungimile laturilor &#039;&#039;&#039;AB, BC, AC&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran masura unghiurilor &#039;&#039;&#039;A, B, C&#039;&#039;&#039; cu &#039;&#039;&#039;2&#039;&#039;&#039; zecimale exacte daca triunghiul este valid, altfel se afiseaza mesajul &#039;&#039;&#039;Imposibil&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ AB,BC,AC ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:7 8 6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:57.91 75.52 46.57&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:Imposibil&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validate_triangle(a, b, c):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifica daca triunghiul cu laturile a, b si c este valid.&lt;br /&gt;
    Returneaza True daca triunghiul este valid, altfel False.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if int(a) + int(b) &amp;lt;= int(c) or int(a) + int(c) &amp;lt;= int(b) or int(b) + int(c) &amp;lt;= int(a):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare2(a, b, c):&lt;br /&gt;
    return 1 &amp;lt;= int(a) &amp;lt;= 1000 and 1 &amp;lt;= int(b) &amp;lt;= 1000 and 1 &amp;lt;= int(c) &amp;lt;= 1000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_angles(a, b, c):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Calculeaza masurile unghiurilor triunghiului cu laturile a, b si c.&lt;br /&gt;
    Returneaza un tuple cu valorile ungiurilor in ordinea A, B, C.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if not validate_triangle(a, b, c):&lt;br /&gt;
        return &amp;quot;Imposibil&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    angle_a = round(math.degrees(math.acos((b ** 2 + c ** 2 - a ** 2) / (2 * b * c))), 2)&lt;br /&gt;
    angle_b = round(math.degrees(math.acos((a ** 2 + c ** 2 - b ** 2) / (2 * a * c))), 2)&lt;br /&gt;
    angle_c = round(math.degrees(math.acos((a ** 2 + b ** 2 - c ** 2) / (2 * a * b))), 2)&lt;br /&gt;
&lt;br /&gt;
    return (angle_a, angle_b, angle_c)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    a, b, c = map(str, input().split())&lt;br /&gt;
    if validare2(a, b, c):&lt;br /&gt;
        a, b, c = float(a), float(b), float(c)&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        angles = calculate_angles(a, b, c)&lt;br /&gt;
        if angles == &amp;quot;Imposibil&amp;quot;:&lt;br /&gt;
            print(&amp;quot;Imposibil&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(*angles)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Funcția validate_triangle verifică dacă triunghiul este valid, returnând True dacă este valid și False altfel. Aceasta verifică dacă suma a două laturi este mai mare decât lungimea celei de-a treia laturi, ceea ce este condiția necesară pentru a forma un triunghi valid.&lt;br /&gt;
&lt;br /&gt;
Funcția calculate_angles primește lungimile laturilor triunghiului și calculează masurile unghiurilor acestuia folosind legea cosinusului. Rezultatele sunt rotunjite la 2 zecimale cu funcția round. Dacă triunghiul nu este valid, funcția returnează mesajul &amp;quot;Imposibil&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Funcția main citește de la tastatură lungimile laturilor triunghiului și apelează funcția calculate_angles. Dacă triunghiul nu este valid, afișează mesajul &amp;quot;Imposibil&amp;quot;, altfel afișează masurile unghiurilor folosind print(*angles), unde angles este un tuple cu valorile ungiurilor.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3813_-_Unghiuri&amp;diff=6214</id>
		<title>3813 - Unghiuri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3813_-_Unghiuri&amp;diff=6214"/>
		<updated>2023-05-07T20:22:12Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Aflati masurile unghiurilor &#039;&#039;&#039;A, B, C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură lungimile laturilor &#039;&#039;&#039;AB, BC, AC&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran masura unghiurilor &#039;&#039;&#039;A, B, C&#039;&#039;&#039; cu &#039;&#039;&#039;2&#039;&#039;&#039; zecimale exacte daca triunghiul este valid, altfel se afiseaza mesajul &#039;&#039;&#039;Imposibil&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ AB,BC,AC ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:7 8 6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:57.91 75.52 46.57&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:Imposibil&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def validate_triangle(a, b, c):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Verifica daca triunghiul cu laturile a, b si c este valid.&lt;br /&gt;
    Returneaza True daca triunghiul este valid, altfel False.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if a + b &amp;lt;= c or a + c &amp;lt;= b or b + c &amp;lt;= a:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def calculate_angles(a, b, c):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Calculeaza masurile unghiurilor triunghiului cu laturile a, b si c.&lt;br /&gt;
    Returneaza un tuple cu valorile ungiurilor in ordinea A, B, C.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if not validate_triangle(a, b, c):&lt;br /&gt;
        return &amp;quot;Imposibil&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    angle_a = round(math.degrees(math.acos((b**2 + c**2 - a**2)/(2*b*c))), 2)&lt;br /&gt;
    angle_b = round(math.degrees(math.acos((a**2 + c**2 - b**2)/(2*a*c))), 2)&lt;br /&gt;
    angle_c = round(math.degrees(math.acos((a**2 + b**2 - c**2)/(2*a*b))), 2)&lt;br /&gt;
    &lt;br /&gt;
    return (angle_a, angle_b, angle_c)&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    a, b, c = map(float, input().split())&lt;br /&gt;
    angles = calculate_angles(a, b, c)&lt;br /&gt;
    if angles == &amp;quot;Imposibil&amp;quot;:&lt;br /&gt;
        print(&amp;quot;Imposibil&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(*angles)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Funcția validate_triangle verifică dacă triunghiul este valid, returnând True dacă este valid și False altfel. Aceasta verifică dacă suma a două laturi este mai mare decât lungimea celei de-a treia laturi, ceea ce este condiția necesară pentru a forma un triunghi valid.&lt;br /&gt;
&lt;br /&gt;
Funcția calculate_angles primește lungimile laturilor triunghiului și calculează masurile unghiurilor acestuia folosind legea cosinusului. Rezultatele sunt rotunjite la 2 zecimale cu funcția round. Dacă triunghiul nu este valid, funcția returnează mesajul &amp;quot;Imposibil&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Funcția main citește de la tastatură lungimile laturilor triunghiului și apelează funcția calculate_angles. Dacă triunghiul nu este valid, afișează mesajul &amp;quot;Imposibil&amp;quot;, altfel afișează masurile unghiurilor folosind print(*angles), unde angles este un tuple cu valorile ungiurilor.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6211</id>
		<title>3806 - Mediane</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6211"/>
		<updated>2023-05-07T20:03:23Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Rezolvare ver. 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Aflați lungimile medianelor duse din &#039;&#039;&#039;A,B si C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele a,b,c, reprezentând lungimile laturilor AB,BC,AC.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran trei numere, reprezentând lungimile celor 3 mediane, fiecare cu 2 zecimale exacte, fără rotunjire, daca triunghiul este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a,b,c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:4.27 3.61  2.50&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:Imposibil&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(a, b, c):&lt;br /&gt;
    return int(a) + int(b) &amp;gt; int(c) and int(a) + int(c) &amp;gt; int(b) and int(b) + int(c) &amp;gt; int(a)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare2(a, b, c):&lt;br /&gt;
    return 1 &amp;lt;= int(a) &amp;lt;= 1000 and 1 &amp;lt;= int(b) &amp;lt;= 1000 and 1 &amp;lt;= int(c) &amp;lt;= 1000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def medianele_triunghiului(a, b, c):&lt;br /&gt;
    if not validare(a, b, c):&lt;br /&gt;
        print(&amp;quot;Imposibil&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        med_a = math.sqrt(2 * b ** 2 + 2 * c ** 2 - a ** 2) / 2&lt;br /&gt;
        med_b = math.sqrt(2 * a ** 2 + 2 * c ** 2 - b ** 2) / 2&lt;br /&gt;
        med_c = math.sqrt(2 * a ** 2 + 2 * b ** 2 - c ** 2) / 2&lt;br /&gt;
        print(&amp;quot;{:.2f} {:.2f} {:.2f}&amp;quot;.format(med_a, med_b, med_c))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    a, b, c = map(str, input().split())&lt;br /&gt;
    if validare2(a, b, c):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        a, b, c = float(a), float(b), float(c)&lt;br /&gt;
        medianele_triunghiului(a, b, c)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Acest cod implementează un program care calculează medienele unui triunghi dat prin lungimile laturilor sale.&lt;br /&gt;
&lt;br /&gt;
În funcția &amp;quot;validare&amp;quot;, se verifică dacă laturile triunghiului îndeplinesc condiția de existență a triunghiului, adică suma oricăror două laturi trebuie să fie mai mare decât a treia latură.&lt;br /&gt;
&lt;br /&gt;
În funcția &amp;quot;validare2&amp;quot;, se verifică dacă laturile sunt în intervalul [1, 1000].&lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;medianele_triunghiului&amp;quot; calculează medienele triunghiului și le afișează în formatul &amp;quot;{:.2f} {:.2f} {:.2f}&amp;quot; (cu două zecimale).&lt;br /&gt;
&lt;br /&gt;
În funcția principală, programul primește valorile laturilor triunghiului de la tastatură în formatul float, iar apoi verifică dacă acestea respectă intervalul [1, 1000] prin apelul funcției &amp;quot;validare2&amp;quot;. Dacă valorile sunt în interval, se afișează un mesaj că datele corespund restricțiilor impuse, iar apoi laturile sunt transformate în int-uri și se apelează funcția &amp;quot;medianele_triunghiului&amp;quot;. Dacă datele nu corespund restricțiilor impuse, se afișează un mesaj corespunzător.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6210</id>
		<title>3806 - Mediane</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6210"/>
		<updated>2023-05-07T20:02:26Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Rezolvare ver. 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Aflați lungimile medianelor duse din &#039;&#039;&#039;A,B si C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele a,b,c, reprezentând lungimile laturilor AB,BC,AC.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran trei numere, reprezentând lungimile celor 3 mediane, fiecare cu 2 zecimale exacte, fără rotunjire, daca triunghiul este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a,b,c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:4.27 3.61  2.50&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:Imposibil&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(a, b, c):&lt;br /&gt;
    return a + b &amp;gt; c and a + c &amp;gt; b and b + c &amp;gt; a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare2(a, b, c):&lt;br /&gt;
    return 1 &amp;lt;= int(a) &amp;lt;= 1000 and 1 &amp;lt;= int(b) &amp;lt;= 1000 and 1 &amp;lt;= int(c) &amp;lt;= 1000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def medianele_triunghiului(a, b, c):&lt;br /&gt;
    if not validare(a, b, c):&lt;br /&gt;
        print(&amp;quot;Imposibil&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        med_a = math.sqrt(2 * b ** 2 + 2 * c ** 2 - a ** 2) / 2&lt;br /&gt;
        med_b = math.sqrt(2 * a ** 2 + 2 * c ** 2 - b ** 2) / 2&lt;br /&gt;
        med_c = math.sqrt(2 * a ** 2 + 2 * b ** 2 - c ** 2) / 2&lt;br /&gt;
        print(&amp;quot;{:.2f} {:.2f} {:.2f}&amp;quot;.format(med_a, med_b, med_c))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    a, b, c = map(str, input().split())&lt;br /&gt;
    if validare2(a, b, c):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        a, b, c = float(a), float(b), float(c)&lt;br /&gt;
        medianele_triunghiului(a, b, c)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Acest cod implementează un program care calculează medienele unui triunghi dat prin lungimile laturilor sale.&lt;br /&gt;
&lt;br /&gt;
În funcția &amp;quot;validare&amp;quot;, se verifică dacă laturile triunghiului îndeplinesc condiția de existență a triunghiului, adică suma oricăror două laturi trebuie să fie mai mare decât a treia latură.&lt;br /&gt;
&lt;br /&gt;
În funcția &amp;quot;validare2&amp;quot;, se verifică dacă laturile sunt în intervalul [1, 1000].&lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;medianele_triunghiului&amp;quot; calculează medienele triunghiului și le afișează în formatul &amp;quot;{:.2f} {:.2f} {:.2f}&amp;quot; (cu două zecimale).&lt;br /&gt;
&lt;br /&gt;
În funcția principală, programul primește valorile laturilor triunghiului de la tastatură în formatul float, iar apoi verifică dacă acestea respectă intervalul [1, 1000] prin apelul funcției &amp;quot;validare2&amp;quot;. Dacă valorile sunt în interval, se afișează un mesaj că datele corespund restricțiilor impuse, iar apoi laturile sunt transformate în int-uri și se apelează funcția &amp;quot;medianele_triunghiului&amp;quot;. Dacă datele nu corespund restricțiilor impuse, se afișează un mesaj corespunzător.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6209</id>
		<title>3806 - Mediane</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6209"/>
		<updated>2023-05-07T20:01:36Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Explicatie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Aflați lungimile medianelor duse din &#039;&#039;&#039;A,B si C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele a,b,c, reprezentând lungimile laturilor AB,BC,AC.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran trei numere, reprezentând lungimile celor 3 mediane, fiecare cu 2 zecimale exacte, fără rotunjire, daca triunghiul este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a,b,c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:4.27 3.61  2.50&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:Imposibil&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(a, b, c):&lt;br /&gt;
    return a + b &amp;gt; c and a + c &amp;gt; b and b + c &amp;gt; a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare2(a, b, c):&lt;br /&gt;
    return 1 &amp;lt;= int(a) &amp;lt;= 1000 and 1 &amp;lt;= int(b) &amp;lt;= 1000 and 1 &amp;lt;= int(c) &amp;lt;= 1000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def medianele_triunghiului(a, b, c):&lt;br /&gt;
    if not validare(a, b, c):&lt;br /&gt;
        print(&amp;quot;Imposibil&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        med_a = math.sqrt(2 * b ** 2 + 2 * c ** 2 - a ** 2) / 2&lt;br /&gt;
        med_b = math.sqrt(2 * a ** 2 + 2 * c ** 2 - b ** 2) / 2&lt;br /&gt;
        med_c = math.sqrt(2 * a ** 2 + 2 * b ** 2 - c ** 2) / 2&lt;br /&gt;
        print(&amp;quot;{:.2f} {:.2f} {:.2f}&amp;quot;.format(med_a, med_b, med_c))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    a, b, c = map(float, input().split())&lt;br /&gt;
    if validare2(a, b, c):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        a, b, c = int(a), int(b), int(c)&lt;br /&gt;
        medianele_triunghiului(a, b, c)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Acest cod implementează un program care calculează medienele unui triunghi dat prin lungimile laturilor sale.&lt;br /&gt;
&lt;br /&gt;
În funcția &amp;quot;validare&amp;quot;, se verifică dacă laturile triunghiului îndeplinesc condiția de existență a triunghiului, adică suma oricăror două laturi trebuie să fie mai mare decât a treia latură.&lt;br /&gt;
&lt;br /&gt;
În funcția &amp;quot;validare2&amp;quot;, se verifică dacă laturile sunt în intervalul [1, 1000].&lt;br /&gt;
&lt;br /&gt;
Funcția &amp;quot;medianele_triunghiului&amp;quot; calculează medienele triunghiului și le afișează în formatul &amp;quot;{:.2f} {:.2f} {:.2f}&amp;quot; (cu două zecimale).&lt;br /&gt;
&lt;br /&gt;
În funcția principală, programul primește valorile laturilor triunghiului de la tastatură în formatul float, iar apoi verifică dacă acestea respectă intervalul [1, 1000] prin apelul funcției &amp;quot;validare2&amp;quot;. Dacă valorile sunt în interval, se afișează un mesaj că datele corespund restricțiilor impuse, iar apoi laturile sunt transformate în int-uri și se apelează funcția &amp;quot;medianele_triunghiului&amp;quot;. Dacă datele nu corespund restricțiilor impuse, se afișează un mesaj corespunzător.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6208</id>
		<title>3806 - Mediane</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6208"/>
		<updated>2023-05-07T19:59:58Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Rezolvare ver. 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Aflați lungimile medianelor duse din &#039;&#039;&#039;A,B si C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele a,b,c, reprezentând lungimile laturilor AB,BC,AC.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran trei numere, reprezentând lungimile celor 3 mediane, fiecare cu 2 zecimale exacte, fără rotunjire, daca triunghiul este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a,b,c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:4.27 3.61  2.50&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:Imposibil&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(a, b, c):&lt;br /&gt;
    return a + b &amp;gt; c and a + c &amp;gt; b and b + c &amp;gt; a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare2(a, b, c):&lt;br /&gt;
    return 1 &amp;lt;= int(a) &amp;lt;= 1000 and 1 &amp;lt;= int(b) &amp;lt;= 1000 and 1 &amp;lt;= int(c) &amp;lt;= 1000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def medianele_triunghiului(a, b, c):&lt;br /&gt;
    if not validare(a, b, c):&lt;br /&gt;
        print(&amp;quot;Imposibil&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        med_a = math.sqrt(2 * b ** 2 + 2 * c ** 2 - a ** 2) / 2&lt;br /&gt;
        med_b = math.sqrt(2 * a ** 2 + 2 * c ** 2 - b ** 2) / 2&lt;br /&gt;
        med_c = math.sqrt(2 * a ** 2 + 2 * b ** 2 - c ** 2) / 2&lt;br /&gt;
        print(&amp;quot;{:.2f} {:.2f} {:.2f}&amp;quot;.format(med_a, med_b, med_c))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    a, b, c = map(float, input().split())&lt;br /&gt;
    if validare2(a, b, c):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        a, b, c = int(a), int(b), int(c)&lt;br /&gt;
        medianele_triunghiului(a, b, c)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Functia validare verifica daca triunghiul exista, iar functia medianele_triunghiului calculeaza medianele si le afiseaza daca triunghiul exista, sau mesajul &amp;quot;Imposibil&amp;quot; in caz contrar.&lt;br /&gt;
&lt;br /&gt;
In functia main, valorile a, b, c sunt citite de la tastatura cu ajutorul functiei map si sunt transmise functiei medianele_triunghiului pentru a calcula si afisa media.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6207</id>
		<title>3806 - Mediane</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6207"/>
		<updated>2023-05-07T19:57:51Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Aflați lungimile medianelor duse din &#039;&#039;&#039;A,B si C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele a,b,c, reprezentând lungimile laturilor AB,BC,AC.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran trei numere, reprezentând lungimile celor 3 mediane, fiecare cu 2 zecimale exacte, fără rotunjire, daca triunghiul este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a,b,c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:4.27 3.61  2.50&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:Imposibil&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def validare(a, b, c):&lt;br /&gt;
    return a + b &amp;gt; c and a + c &amp;gt; b and b + c &amp;gt; a&lt;br /&gt;
&lt;br /&gt;
def medianele_triunghiului(a, b, c):&lt;br /&gt;
    if not validare(a, b, c):&lt;br /&gt;
        print(&amp;quot;Imposibil&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        med_a = math.sqrt(2 * b**2 + 2 * c**2 - a**2) / 2&lt;br /&gt;
        med_b = math.sqrt(2 * a**2 + 2 * c**2 - b**2) / 2&lt;br /&gt;
        med_c = math.sqrt(2 * a**2 + 2 * b**2 - c**2) / 2&lt;br /&gt;
        print(&amp;quot;{:.2f} {:.2f} {:.2f}&amp;quot;.format(med_a, med_b, med_c))&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    a, b, c = map(float, input().split())&lt;br /&gt;
    medianele_triunghiului(a, b, c)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Functia validare verifica daca triunghiul exista, iar functia medianele_triunghiului calculeaza medianele si le afiseaza daca triunghiul exista, sau mesajul &amp;quot;Imposibil&amp;quot; in caz contrar.&lt;br /&gt;
&lt;br /&gt;
In functia main, valorile a, b, c sunt citite de la tastatura cu ajutorul functiei map si sunt transmise functiei medianele_triunghiului pentru a calcula si afisa media.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6206</id>
		<title>3806 - Mediane</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6206"/>
		<updated>2023-05-07T19:57:34Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Aflați lungimile medianelor duse din &#039;&#039;&#039;A,B si C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele a,b,c, reprezentând lungimile laturilor AB,BC,AC.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran trei numere, reprezentând lungimile celor 3 mediane, fiecare cu 2 zecimale exacte, fără rotunjire, daca triunghiul este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a,b,c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:4.27 3.61  2.50&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
 4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Imposibil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def validare(a, b, c):&lt;br /&gt;
    return a + b &amp;gt; c and a + c &amp;gt; b and b + c &amp;gt; a&lt;br /&gt;
&lt;br /&gt;
def medianele_triunghiului(a, b, c):&lt;br /&gt;
    if not validare(a, b, c):&lt;br /&gt;
        print(&amp;quot;Imposibil&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        med_a = math.sqrt(2 * b**2 + 2 * c**2 - a**2) / 2&lt;br /&gt;
        med_b = math.sqrt(2 * a**2 + 2 * c**2 - b**2) / 2&lt;br /&gt;
        med_c = math.sqrt(2 * a**2 + 2 * b**2 - c**2) / 2&lt;br /&gt;
        print(&amp;quot;{:.2f} {:.2f} {:.2f}&amp;quot;.format(med_a, med_b, med_c))&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    a, b, c = map(float, input().split())&lt;br /&gt;
    medianele_triunghiului(a, b, c)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Functia validare verifica daca triunghiul exista, iar functia medianele_triunghiului calculeaza medianele si le afiseaza daca triunghiul exista, sau mesajul &amp;quot;Imposibil&amp;quot; in caz contrar.&lt;br /&gt;
&lt;br /&gt;
In functia main, valorile a, b, c sunt citite de la tastatura cu ajutorul functiei map si sunt transmise functiei medianele_triunghiului pentru a calcula si afisa media.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6205</id>
		<title>3806 - Mediane</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3806_-_Mediane&amp;diff=6205"/>
		<updated>2023-05-07T19:57:08Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Aflați lungimile medianelor duse din &#039;&#039;&#039;A,B si C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele a,b,c, reprezentând lungimile laturilor AB,BC,AC.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran trei numere, reprezentând lungimile celor 3 mediane, fiecare cu 2 zecimale exacte, fără rotunjire, daca triunghiul este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a,b,c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
 3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 4.27 3.61  2.50&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
 4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Imposibil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def validare(a, b, c):&lt;br /&gt;
    return a + b &amp;gt; c and a + c &amp;gt; b and b + c &amp;gt; a&lt;br /&gt;
&lt;br /&gt;
def medianele_triunghiului(a, b, c):&lt;br /&gt;
    if not validare(a, b, c):&lt;br /&gt;
        print(&amp;quot;Imposibil&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        med_a = math.sqrt(2 * b**2 + 2 * c**2 - a**2) / 2&lt;br /&gt;
        med_b = math.sqrt(2 * a**2 + 2 * c**2 - b**2) / 2&lt;br /&gt;
        med_c = math.sqrt(2 * a**2 + 2 * b**2 - c**2) / 2&lt;br /&gt;
        print(&amp;quot;{:.2f} {:.2f} {:.2f}&amp;quot;.format(med_a, med_b, med_c))&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    a, b, c = map(float, input().split())&lt;br /&gt;
    medianele_triunghiului(a, b, c)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Functia validare verifica daca triunghiul exista, iar functia medianele_triunghiului calculeaza medianele si le afiseaza daca triunghiul exista, sau mesajul &amp;quot;Imposibil&amp;quot; in caz contrar.&lt;br /&gt;
&lt;br /&gt;
In functia main, valorile a, b, c sunt citite de la tastatura cu ajutorul functiei map si sunt transmise functiei medianele_triunghiului pentru a calcula si afisa media.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3812_-_%C3%8En%C4%83l%C8%9Bimi2&amp;diff=6203</id>
		<title>3812 - Înălțimi2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3812_-_%C3%8En%C4%83l%C8%9Bimi2&amp;diff=6203"/>
		<updated>2023-05-07T19:52:17Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Explicatie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Calculati lungimile inaltimilor duse din &#039;&#039;&#039;A, B, C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;a, b, c&#039;&#039;&#039; reprezentand lungimile laturilor &#039;&#039;&#039;AB, BC, AC&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran lungimile inaltimilor triunghiului cu &#039;&#039;&#039;2&#039;&#039;&#039; zecimale exacte daca acesta este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a, b, c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:13.00 2.40 4.00&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:Imposibil&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def validate_triangle(a, b, c):&lt;br /&gt;
    if a + b &amp;gt; c and a + c &amp;gt; b and b + c &amp;gt; a:&lt;br /&gt;
        return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(a, b, c):&lt;br /&gt;
    return 1 &amp;lt;= int(a) &amp;lt;= 1000 and 1 &amp;lt;= int(b) &amp;lt;= 1000 and 1 &amp;lt;= int(c) &amp;lt;= 1000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_altitudes(a, b, c):&lt;br /&gt;
    if validate_triangle(a, b, c):&lt;br /&gt;
        p = (a + b + c) / 2&lt;br /&gt;
        area = (p * (p - a) * (p - b) * (p - c)) ** 0.5&lt;br /&gt;
        ha = 2 * area / a&lt;br /&gt;
        hb = 2 * area / b&lt;br /&gt;
        hc = 2 * area / c&lt;br /&gt;
        return round(ha, 2), round(hb, 2), round(hc, 2)&lt;br /&gt;
    else:&lt;br /&gt;
        return &amp;quot;Imposibil&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    a, b, c = map(str, input().split())&lt;br /&gt;
    if validare(a, b, c):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        a, b, c = int(a), int(b), int(c)&lt;br /&gt;
        altitudes = calculate_altitudes(a, b, c)&lt;br /&gt;
        if isinstance(altitudes, tuple):&lt;br /&gt;
            ha, hb, hc = altitudes&lt;br /&gt;
            print(round(ha, 2), round(hb, 2), round(hc, 2))&lt;br /&gt;
        else:&lt;br /&gt;
            print(altitudes)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Acest cod reprezintă un program Python care calculează înălțimile unui triunghi, având date cele trei laturi ale sale.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_triangle verifică dacă cele trei laturi date pot forma un triunghi valid, utilizând proprietatea că suma oricăror două laturi trebuie să fie mai mare decât cea de-a treia latură.&lt;br /&gt;
&lt;br /&gt;
Funcția validare verifică dacă valorile laturilor sunt între 1 și 1000.&lt;br /&gt;
&lt;br /&gt;
Funcția calculate_altitudes calculează înălțimile triunghiului utilizând formula standard care folosește aria triunghiului și lungimile laturilor. În cazul în care laturile nu formează un triunghi valid, funcția returnează o valoare specială &amp;quot;Imposibil&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
În cadrul blocului principal de cod, valorile laturilor triunghiului sunt citite de la tastatură și apoi verificate prin intermediul funcției validare. Dacă valorile sunt valide, se calculează înălțimile triunghiului prin apelarea funcției calculate_altitudes. Dacă aceasta returnează o tuplă, valorile înălțimilor sunt afișate pe ecran rotunjite la două zecimale. Dacă funcția calculate_altitudes returnează valoarea specială &amp;quot;Imposibil&amp;quot;, se afișează acest mesaj pe ecran. În caz contrar, se afișează un mesaj care indică că datele de intrare sunt valide.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3812_-_%C3%8En%C4%83l%C8%9Bimi2&amp;diff=6202</id>
		<title>3812 - Înălțimi2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3812_-_%C3%8En%C4%83l%C8%9Bimi2&amp;diff=6202"/>
		<updated>2023-05-07T19:48:48Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Rezolvare ver. 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Calculati lungimile inaltimilor duse din &#039;&#039;&#039;A, B, C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;a, b, c&#039;&#039;&#039; reprezentand lungimile laturilor &#039;&#039;&#039;AB, BC, AC&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran lungimile inaltimilor triunghiului cu &#039;&#039;&#039;2&#039;&#039;&#039; zecimale exacte daca acesta este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a, b, c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:13.00 2.40 4.00&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:Imposibil&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def validate_triangle(a, b, c):&lt;br /&gt;
    if a + b &amp;gt; c and a + c &amp;gt; b and b + c &amp;gt; a:&lt;br /&gt;
        return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(a, b, c):&lt;br /&gt;
    return 1 &amp;lt;= int(a) &amp;lt;= 1000 and 1 &amp;lt;= int(b) &amp;lt;= 1000 and 1 &amp;lt;= int(c) &amp;lt;= 1000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_altitudes(a, b, c):&lt;br /&gt;
    if validate_triangle(a, b, c):&lt;br /&gt;
        p = (a + b + c) / 2&lt;br /&gt;
        area = (p * (p - a) * (p - b) * (p - c)) ** 0.5&lt;br /&gt;
        ha = 2 * area / a&lt;br /&gt;
        hb = 2 * area / b&lt;br /&gt;
        hc = 2 * area / c&lt;br /&gt;
        return round(ha, 2), round(hb, 2), round(hc, 2)&lt;br /&gt;
    else:&lt;br /&gt;
        return &amp;quot;Imposibil&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    a, b, c = map(str, input().split())&lt;br /&gt;
    if validare(a, b, c):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        a, b, c = int(a), int(b), int(c)&lt;br /&gt;
        altitudes = calculate_altitudes(a, b, c)&lt;br /&gt;
        if isinstance(altitudes, tuple):&lt;br /&gt;
            ha, hb, hc = altitudes&lt;br /&gt;
            print(round(ha, 2), round(hb, 2), round(hc, 2))&lt;br /&gt;
        else:&lt;br /&gt;
            print(altitudes)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Funcția validate_triangle(a, b, c) verifică dacă triunghiul dat este valid folosind condiția de validitate menționată mai sus.&lt;br /&gt;
Funcția calculate_altitudes(a, b, c) calculează lungimile înălțimilor triunghiului dacă triunghiul dat este valid, altfel returnează un mesaj de eroare. Pentru calcularea lungimilor înălțimilor, am folosit formula dată mai sus și am rotunjit rezultatele la două zecimale folosind funcția round().&lt;br /&gt;
Funcția main() citește lungimile laturilor triunghiului de la tastatură folosind funcția input() și apoi apelează funcția calculate_altitudes(a, b, c) pentru a calcula lungimile înălțimilor triunghiului. Rezultatele sunt apoi afișate folosind funcția print().&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3812_-_%C3%8En%C4%83l%C8%9Bimi2&amp;diff=6200</id>
		<title>3812 - Înălțimi2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3812_-_%C3%8En%C4%83l%C8%9Bimi2&amp;diff=6200"/>
		<updated>2023-05-07T19:41:54Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Exemplul 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Calculati lungimile inaltimilor duse din &#039;&#039;&#039;A, B, C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;a, b, c&#039;&#039;&#039; reprezentand lungimile laturilor &#039;&#039;&#039;AB, BC, AC&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran lungimile inaltimilor triunghiului cu &#039;&#039;&#039;2&#039;&#039;&#039; zecimale exacte daca acesta este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a, b, c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:13.00 2.40 4.00&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:Imposibil&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_triangle(a, b, c):&lt;br /&gt;
    if a + b &amp;gt; c and a + c &amp;gt; b and b + c &amp;gt; a:&lt;br /&gt;
        return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
def calculate_altitudes(a, b, c):&lt;br /&gt;
    if validate_triangle(a, b, c):&lt;br /&gt;
        p = (a + b + c) / 2&lt;br /&gt;
        area = (p * (p - a) * (p - b) * (p - c)) ** 0.5&lt;br /&gt;
        ha = 2 * area / a&lt;br /&gt;
        hb = 2 * area / b&lt;br /&gt;
        hc = 2 * area / c&lt;br /&gt;
        return round(ha, 2), round(hb, 2), round(hc, 2)&lt;br /&gt;
    else:&lt;br /&gt;
        return &amp;quot;Imposibil&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    a, b, c = map(float, input().split())&lt;br /&gt;
    ha, hb, hc = calculate_altitudes(a, b, c)&lt;br /&gt;
    print(ha, hb, hc)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Funcția validate_triangle(a, b, c) verifică dacă triunghiul dat este valid folosind condiția de validitate menționată mai sus.&lt;br /&gt;
Funcția calculate_altitudes(a, b, c) calculează lungimile înălțimilor triunghiului dacă triunghiul dat este valid, altfel returnează un mesaj de eroare. Pentru calcularea lungimilor înălțimilor, am folosit formula dată mai sus și am rotunjit rezultatele la două zecimale folosind funcția round().&lt;br /&gt;
Funcția main() citește lungimile laturilor triunghiului de la tastatură folosind funcția input() și apoi apelează funcția calculate_altitudes(a, b, c) pentru a calcula lungimile înălțimilor triunghiului. Rezultatele sunt apoi afișate folosind funcția print().&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3812_-_%C3%8En%C4%83l%C8%9Bimi2&amp;diff=6199</id>
		<title>3812 - Înălțimi2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3812_-_%C3%8En%C4%83l%C8%9Bimi2&amp;diff=6199"/>
		<updated>2023-05-07T19:41:39Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Calculati lungimile inaltimilor duse din &#039;&#039;&#039;A, B, C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;a, b, c&#039;&#039;&#039; reprezentand lungimile laturilor &#039;&#039;&#039;AB, BC, AC&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran lungimile inaltimilor triunghiului cu &#039;&#039;&#039;2&#039;&#039;&#039; zecimale exacte daca acesta este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a, b, c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:13.00 2.40 4.00&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
 4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Imposibil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_triangle(a, b, c):&lt;br /&gt;
    if a + b &amp;gt; c and a + c &amp;gt; b and b + c &amp;gt; a:&lt;br /&gt;
        return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
def calculate_altitudes(a, b, c):&lt;br /&gt;
    if validate_triangle(a, b, c):&lt;br /&gt;
        p = (a + b + c) / 2&lt;br /&gt;
        area = (p * (p - a) * (p - b) * (p - c)) ** 0.5&lt;br /&gt;
        ha = 2 * area / a&lt;br /&gt;
        hb = 2 * area / b&lt;br /&gt;
        hc = 2 * area / c&lt;br /&gt;
        return round(ha, 2), round(hb, 2), round(hc, 2)&lt;br /&gt;
    else:&lt;br /&gt;
        return &amp;quot;Imposibil&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    a, b, c = map(float, input().split())&lt;br /&gt;
    ha, hb, hc = calculate_altitudes(a, b, c)&lt;br /&gt;
    print(ha, hb, hc)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Funcția validate_triangle(a, b, c) verifică dacă triunghiul dat este valid folosind condiția de validitate menționată mai sus.&lt;br /&gt;
Funcția calculate_altitudes(a, b, c) calculează lungimile înălțimilor triunghiului dacă triunghiul dat este valid, altfel returnează un mesaj de eroare. Pentru calcularea lungimilor înălțimilor, am folosit formula dată mai sus și am rotunjit rezultatele la două zecimale folosind funcția round().&lt;br /&gt;
Funcția main() citește lungimile laturilor triunghiului de la tastatură folosind funcția input() și apoi apelează funcția calculate_altitudes(a, b, c) pentru a calcula lungimile înălțimilor triunghiului. Rezultatele sunt apoi afișate folosind funcția print().&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3812_-_%C3%8En%C4%83l%C8%9Bimi2&amp;diff=6198</id>
		<title>3812 - Înălțimi2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3812_-_%C3%8En%C4%83l%C8%9Bimi2&amp;diff=6198"/>
		<updated>2023-05-07T19:41:18Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau lungimile laturilor unui triunghi &#039;&#039;&#039;ABC&#039;&#039;&#039;. Calculati lungimile inaltimilor duse din &#039;&#039;&#039;A, B, C&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;a, b, c&#039;&#039;&#039; reprezentand lungimile laturilor &#039;&#039;&#039;AB, BC, AC&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran lungimile inaltimilor triunghiului cu &#039;&#039;&#039;2&#039;&#039;&#039; zecimale exacte daca acesta este valid, altfel se afiseaza mesajul Imposibil. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a, b, c ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
 3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 13.00 2.40 4.00&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
 4 5 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Imposibil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_triangle(a, b, c):&lt;br /&gt;
    if a + b &amp;gt; c and a + c &amp;gt; b and b + c &amp;gt; a:&lt;br /&gt;
        return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
def calculate_altitudes(a, b, c):&lt;br /&gt;
    if validate_triangle(a, b, c):&lt;br /&gt;
        p = (a + b + c) / 2&lt;br /&gt;
        area = (p * (p - a) * (p - b) * (p - c)) ** 0.5&lt;br /&gt;
        ha = 2 * area / a&lt;br /&gt;
        hb = 2 * area / b&lt;br /&gt;
        hc = 2 * area / c&lt;br /&gt;
        return round(ha, 2), round(hb, 2), round(hc, 2)&lt;br /&gt;
    else:&lt;br /&gt;
        return &amp;quot;Imposibil&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    a, b, c = map(float, input().split())&lt;br /&gt;
    ha, hb, hc = calculate_altitudes(a, b, c)&lt;br /&gt;
    print(ha, hb, hc)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Funcția validate_triangle(a, b, c) verifică dacă triunghiul dat este valid folosind condiția de validitate menționată mai sus.&lt;br /&gt;
Funcția calculate_altitudes(a, b, c) calculează lungimile înălțimilor triunghiului dacă triunghiul dat este valid, altfel returnează un mesaj de eroare. Pentru calcularea lungimilor înălțimilor, am folosit formula dată mai sus și am rotunjit rezultatele la două zecimale folosind funcția round().&lt;br /&gt;
Funcția main() citește lungimile laturilor triunghiului de la tastatură folosind funcția input() și apoi apelează funcția calculate_altitudes(a, b, c) pentru a calcula lungimile înălțimilor triunghiului. Rezultatele sunt apoi afișate folosind funcția print().&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0970_-_Gen&amp;diff=6196</id>
		<title>0970 - Gen</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0970_-_Gen&amp;diff=6196"/>
		<updated>2023-05-07T19:35:21Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Rezolvare ver. 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
Pe planeta Marte, marţienii folosesc în calculele aritmetice doar cifrele &#039;&#039;&#039;0&#039;&#039;&#039;, &#039;&#039;&#039;1&#039;&#039;&#039;, &#039;&#039;&#039;2&#039;&#039;&#039; şi &#039;&#039;&#039;3&#039;&#039;&#039;. Ei au inventat un nou sistem binar de numeraţie. Pornind de la numărul &#039;&#039;&#039;23&#039;&#039;&#039;, ei generează numere binare speciale aplicând de un număr finit de ori regulile din tabelul de mai jos:&lt;br /&gt;
&lt;br /&gt;
*Cifra &#039;&#039;&#039;2&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;12&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;3&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;03&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;2&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;01&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;3&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Marţienii au început să genereze un astfel de număr, aplicând succesiv (în această ordine): de n ori regula 1); de k ori regula 2); o singură dată regula 3) şi o singură dată regula 4). Nefiind atenţi, ei nu au reuşit să ducă la capăt generarea şi au nevoie de ajutor. Ajutaţi-i să genereze numărul binar dorit.&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Scrieţi un program care citeşte numerele naturale nenule n şi k şi care afişează numărul binar obţinut în urma aplicării succesive a regulilor cerute de marţieni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n k&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot; &lt;br /&gt;
Programul va afișa pe ecran numărul cerut.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;0&amp;lt;n,k&amp;lt;=1000000, numere naturale&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare  &#039;&#039;&#039;&lt;br /&gt;
:5 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Iesire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:1111101000010&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(n, k):&lt;br /&gt;
    if not(1 &amp;lt;= n &amp;lt;= 1000000) or not(1 &amp;lt;= k &amp;lt;= 1000000):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def aplicare_reguli(n, k):&lt;br /&gt;
    # incepem cu numarul 23&lt;br /&gt;
    numar = &#039;23&#039;&lt;br /&gt;
    # aplicam regula 1 de n ori&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        numar = numar.replace(&#039;2&#039;, &#039;12&#039;).replace(&#039;3&#039;, &#039;03&#039;)&lt;br /&gt;
    # aplicam regula 2 de k ori&lt;br /&gt;
    for i in range(k):&lt;br /&gt;
        numar = numar.replace(&#039;2&#039;, &#039;01&#039;).replace(&#039;3&#039;, &#039;10&#039;)&lt;br /&gt;
    # aplicam regula 3 o singura data&lt;br /&gt;
    numar = numar.replace(&#039;2&#039;, &#039;01&#039;)&lt;br /&gt;
    # aplicam regula 4 o singura data&lt;br /&gt;
    numar = numar.replace(&#039;3&#039;, &#039;10&#039;)&lt;br /&gt;
    # afisam numarul final in format binar&lt;br /&gt;
    return bin(int(numar))[2:].zfill(13)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # citim n si k de la tastatura&lt;br /&gt;
    n, k = map(int, input().split())&lt;br /&gt;
    # validam datele de intrare&lt;br /&gt;
    if validare(n, k):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        # aplicam regulile si afisam rezultatul&lt;br /&gt;
        print(aplicare_reguli(n, k))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
In acest cod, am definit functia aplicare_reguli care primeste ca parametri numerele n si k, si returneaza numarul binar obtinut in urma aplicarii regulilor cerute de martieni. In functia aplicare_reguli am definit un string numar initializat cu valoarea &amp;quot;23&amp;quot;, si apoi am aplicat regulile in ordinea specificata in problema, folosind functia replace() pentru inlocuirea cifrelor 2 si 3 cu succesiunile corespunzatoare. La final, am convertit numarul in format binar cu ajutorul functiei bin() si am afisat rezultatul.&lt;br /&gt;
&lt;br /&gt;
In main, am citit de la tastatura valorile pentru n si k, am validat datele de intrare folosind functia validare, si apoi am apelat functia aplicare_reguli si am afisat rezultatul.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0970_-_Gen&amp;diff=6195</id>
		<title>0970 - Gen</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0970_-_Gen&amp;diff=6195"/>
		<updated>2023-05-07T19:34:12Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
Pe planeta Marte, marţienii folosesc în calculele aritmetice doar cifrele &#039;&#039;&#039;0&#039;&#039;&#039;, &#039;&#039;&#039;1&#039;&#039;&#039;, &#039;&#039;&#039;2&#039;&#039;&#039; şi &#039;&#039;&#039;3&#039;&#039;&#039;. Ei au inventat un nou sistem binar de numeraţie. Pornind de la numărul &#039;&#039;&#039;23&#039;&#039;&#039;, ei generează numere binare speciale aplicând de un număr finit de ori regulile din tabelul de mai jos:&lt;br /&gt;
&lt;br /&gt;
*Cifra &#039;&#039;&#039;2&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;12&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;3&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;03&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;2&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;01&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;3&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Marţienii au început să genereze un astfel de număr, aplicând succesiv (în această ordine): de n ori regula 1); de k ori regula 2); o singură dată regula 3) şi o singură dată regula 4). Nefiind atenţi, ei nu au reuşit să ducă la capăt generarea şi au nevoie de ajutor. Ajutaţi-i să genereze numărul binar dorit.&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Scrieţi un program care citeşte numerele naturale nenule n şi k şi care afişează numărul binar obţinut în urma aplicării succesive a regulilor cerute de marţieni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n k&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot; &lt;br /&gt;
Programul va afișa pe ecran numărul cerut.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;0&amp;lt;n,k&amp;lt;=1000000, numere naturale&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare  &#039;&#039;&#039;&lt;br /&gt;
:5 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Iesire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:1111101000010&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(n, k):&lt;br /&gt;
    if not(1 &amp;lt;= n &amp;lt;= 1000000) or not(1 &amp;lt;= k &amp;lt;= 1000000):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def aplicare_reguli(n, k):&lt;br /&gt;
    # incepem cu numarul 23&lt;br /&gt;
    numar = &#039;23&#039;&lt;br /&gt;
    # aplicam regula 1 de n ori&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        numar = numar.replace(&#039;2&#039;, &#039;12&#039;).replace(&#039;3&#039;, &#039;03&#039;)&lt;br /&gt;
    # aplicam regula 2 de k ori&lt;br /&gt;
    for i in range(k):&lt;br /&gt;
        numar = numar.replace(&#039;2&#039;, &#039;01&#039;).replace(&#039;3&#039;, &#039;10&#039;)&lt;br /&gt;
    # aplicam regula 3 o singura data&lt;br /&gt;
    numar = numar.replace(&#039;2&#039;, &#039;01&#039;)&lt;br /&gt;
    # aplicam regula 4 o singura data&lt;br /&gt;
    numar = numar.replace(&#039;3&#039;, &#039;10&#039;)&lt;br /&gt;
    # afisam numarul final in format binar&lt;br /&gt;
    return bin(int(numar))[2:].zfill(13)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # citim n si k de la tastatura&lt;br /&gt;
    n, k = map(int, input().split())&lt;br /&gt;
    # validam datele de intrare&lt;br /&gt;
    if validare(n, k):&lt;br /&gt;
        # aplicam regulile si afisam rezultatul&lt;br /&gt;
        print(aplicare_reguli(n, k))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Date de intrare invalide!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
In acest cod, am definit functia aplicare_reguli care primeste ca parametri numerele n si k, si returneaza numarul binar obtinut in urma aplicarii regulilor cerute de martieni. In functia aplicare_reguli am definit un string numar initializat cu valoarea &amp;quot;23&amp;quot;, si apoi am aplicat regulile in ordinea specificata in problema, folosind functia replace() pentru inlocuirea cifrelor 2 si 3 cu succesiunile corespunzatoare. La final, am convertit numarul in format binar cu ajutorul functiei bin() si am afisat rezultatul.&lt;br /&gt;
&lt;br /&gt;
In main, am citit de la tastatura valorile pentru n si k, am validat datele de intrare folosind functia validare, si apoi am apelat functia aplicare_reguli si am afisat rezultatul.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0970_-_Gen&amp;diff=6194</id>
		<title>0970 - Gen</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0970_-_Gen&amp;diff=6194"/>
		<updated>2023-05-07T19:33:47Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
Pe planeta Marte, marţienii folosesc în calculele aritmetice doar cifrele &#039;&#039;&#039;0&#039;&#039;&#039;, &#039;&#039;&#039;1&#039;&#039;&#039;, &#039;&#039;&#039;2&#039;&#039;&#039; şi &#039;&#039;&#039;3&#039;&#039;&#039;. Ei au inventat un nou sistem binar de numeraţie. Pornind de la numărul &#039;&#039;&#039;23&#039;&#039;&#039;, ei generează numere binare speciale aplicând de un număr finit de ori regulile din tabelul de mai jos:&lt;br /&gt;
&lt;br /&gt;
*Cifra &#039;&#039;&#039;2&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;12&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;3&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;03&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;2&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;01&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;3&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Marţienii au început să genereze un astfel de număr, aplicând succesiv (în această ordine): de n ori regula 1); de k ori regula 2); o singură dată regula 3) şi o singură dată regula 4). Nefiind atenţi, ei nu au reuşit să ducă la capăt generarea şi au nevoie de ajutor. Ajutaţi-i să genereze numărul binar dorit.&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Scrieţi un program care citeşte numerele naturale nenule n şi k şi care afişează numărul binar obţinut în urma aplicării succesive a regulilor cerute de marţieni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n k&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot; &lt;br /&gt;
Programul va afișa pe ecran numărul cerut.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;0&amp;lt;n,k&amp;lt;=1000000, numere naturale&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare  &#039;&#039;&#039;&lt;br /&gt;
 5 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Iesire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 1111101000010&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(n, k):&lt;br /&gt;
    if not(1 &amp;lt;= n &amp;lt;= 1000000) or not(1 &amp;lt;= k &amp;lt;= 1000000):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def aplicare_reguli(n, k):&lt;br /&gt;
    # incepem cu numarul 23&lt;br /&gt;
    numar = &#039;23&#039;&lt;br /&gt;
    # aplicam regula 1 de n ori&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        numar = numar.replace(&#039;2&#039;, &#039;12&#039;).replace(&#039;3&#039;, &#039;03&#039;)&lt;br /&gt;
    # aplicam regula 2 de k ori&lt;br /&gt;
    for i in range(k):&lt;br /&gt;
        numar = numar.replace(&#039;2&#039;, &#039;01&#039;).replace(&#039;3&#039;, &#039;10&#039;)&lt;br /&gt;
    # aplicam regula 3 o singura data&lt;br /&gt;
    numar = numar.replace(&#039;2&#039;, &#039;01&#039;)&lt;br /&gt;
    # aplicam regula 4 o singura data&lt;br /&gt;
    numar = numar.replace(&#039;3&#039;, &#039;10&#039;)&lt;br /&gt;
    # afisam numarul final in format binar&lt;br /&gt;
    return bin(int(numar))[2:].zfill(13)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # citim n si k de la tastatura&lt;br /&gt;
    n, k = map(int, input().split())&lt;br /&gt;
    # validam datele de intrare&lt;br /&gt;
    if validare(n, k):&lt;br /&gt;
        # aplicam regulile si afisam rezultatul&lt;br /&gt;
        print(aplicare_reguli(n, k))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Date de intrare invalide!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
In acest cod, am definit functia aplicare_reguli care primeste ca parametri numerele n si k, si returneaza numarul binar obtinut in urma aplicarii regulilor cerute de martieni. In functia aplicare_reguli am definit un string numar initializat cu valoarea &amp;quot;23&amp;quot;, si apoi am aplicat regulile in ordinea specificata in problema, folosind functia replace() pentru inlocuirea cifrelor 2 si 3 cu succesiunile corespunzatoare. La final, am convertit numarul in format binar cu ajutorul functiei bin() si am afisat rezultatul.&lt;br /&gt;
&lt;br /&gt;
In main, am citit de la tastatura valorile pentru n si k, am validat datele de intrare folosind functia validare, si apoi am apelat functia aplicare_reguli si am afisat rezultatul.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0970_-_Gen&amp;diff=6193</id>
		<title>0970 - Gen</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0970_-_Gen&amp;diff=6193"/>
		<updated>2023-05-07T19:32:58Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Enunt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
Pe planeta Marte, marţienii folosesc în calculele aritmetice doar cifrele &#039;&#039;&#039;0&#039;&#039;&#039;, &#039;&#039;&#039;1&#039;&#039;&#039;, &#039;&#039;&#039;2&#039;&#039;&#039; şi &#039;&#039;&#039;3&#039;&#039;&#039;. Ei au inventat un nou sistem binar de numeraţie. Pornind de la numărul &#039;&#039;&#039;23&#039;&#039;&#039;, ei generează numere binare speciale aplicând de un număr finit de ori regulile din tabelul de mai jos:&lt;br /&gt;
&lt;br /&gt;
*Cifra &#039;&#039;&#039;2&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;12&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;3&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;03&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;2&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;01&#039;&#039;&#039;&lt;br /&gt;
*Cifra &#039;&#039;&#039;3&#039;&#039;&#039; se poate înlocui cu succesiunea: &#039;&#039;&#039;10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Marţienii au început să genereze un astfel de număr, aplicând succesiv (în această ordine): de n ori regula 1); de k ori regula 2); o singură dată regula 3) şi o singură dată regula 4). Nefiind atenţi, ei nu au reuşit să ducă la capăt generarea şi au nevoie de ajutor. Ajutaţi-i să genereze numărul binar dorit.&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Scrieţi un program care citeşte numerele naturale nenule n şi k şi care afişează numărul binar obţinut în urma aplicării succesive a regulilor cerute de marţieni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n k&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
&lt;br /&gt;
Programul va afișa pe ecran numărul cerut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;0&amp;lt;n,k&amp;lt;=1000000, numere naturale&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare  &#039;&#039;&#039;&lt;br /&gt;
 5 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Iesire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 1111101000010&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(n, k):&lt;br /&gt;
    if not(1 &amp;lt;= n &amp;lt;= 1000000) or not(1 &amp;lt;= k &amp;lt;= 1000000):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def aplicare_reguli(n, k):&lt;br /&gt;
    # incepem cu numarul 23&lt;br /&gt;
    numar = &#039;23&#039;&lt;br /&gt;
    # aplicam regula 1 de n ori&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        numar = numar.replace(&#039;2&#039;, &#039;12&#039;).replace(&#039;3&#039;, &#039;03&#039;)&lt;br /&gt;
    # aplicam regula 2 de k ori&lt;br /&gt;
    for i in range(k):&lt;br /&gt;
        numar = numar.replace(&#039;2&#039;, &#039;01&#039;).replace(&#039;3&#039;, &#039;10&#039;)&lt;br /&gt;
    # aplicam regula 3 o singura data&lt;br /&gt;
    numar = numar.replace(&#039;2&#039;, &#039;01&#039;)&lt;br /&gt;
    # aplicam regula 4 o singura data&lt;br /&gt;
    numar = numar.replace(&#039;3&#039;, &#039;10&#039;)&lt;br /&gt;
    # afisam numarul final in format binar&lt;br /&gt;
    return bin(int(numar))[2:].zfill(13)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # citim n si k de la tastatura&lt;br /&gt;
    n, k = map(int, input().split())&lt;br /&gt;
    # validam datele de intrare&lt;br /&gt;
    if validare(n, k):&lt;br /&gt;
        # aplicam regulile si afisam rezultatul&lt;br /&gt;
        print(aplicare_reguli(n, k))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Date de intrare invalide!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
In acest cod, am definit functia aplicare_reguli care primeste ca parametri numerele n si k, si returneaza numarul binar obtinut in urma aplicarii regulilor cerute de martieni. In functia aplicare_reguli am definit un string numar initializat cu valoarea &amp;quot;23&amp;quot;, si apoi am aplicat regulile in ordinea specificata in problema, folosind functia replace() pentru inlocuirea cifrelor 2 si 3 cu succesiunile corespunzatoare. La final, am convertit numarul in format binar cu ajutorul functiei bin() si am afisat rezultatul.&lt;br /&gt;
&lt;br /&gt;
In main, am citit de la tastatura valorile pentru n si k, am validat datele de intrare folosind functia validare, si apoi am apelat functia aplicare_reguli si am afisat rezultatul.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2579_-_Putere_2_Interval&amp;diff=6191</id>
		<title>2579 - Putere 2 Interval</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2579_-_Putere_2_Interval&amp;diff=6191"/>
		<updated>2023-05-07T19:22:36Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cerință==&lt;br /&gt;
Se citesc 3 numere naturale &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039; și &#039;&#039;&#039;b&#039;&#039;&#039;. Afișați primele &#039;&#039;&#039;n&#039;&#039;&#039; puteri ale lui &#039;&#039;&#039;2&#039;&#039;&#039;, în ordine crescătoare, din intervalul &#039;&#039;&#039;[a,b]&#039;&#039;&#039;. Dacă nu există cel puțin n puteri ale lui &#039;&#039;&#039;2&#039;&#039;&#039; în interval, atunci se vor afișa cele care există.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039; și &#039;&#039;&#039;b&#039;&#039;&#039;, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran puterile lui &#039;&#039;&#039;2&#039;&#039;&#039; din intervalul &#039;&#039;&#039;[a,b]&#039;&#039;&#039;.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ n ≤ 60&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a ≤ b &amp;lt; 2^64&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare  &#039;&#039;&#039;&lt;br /&gt;
:2 6 35&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:8 16&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
În interval există &#039;&#039;&#039;3&#039;&#039;&#039; puteri ale lui &#039;&#039;&#039;2&#039;&#039;&#039;, dar s-au afișat doar &#039;&#039;&#039;n&#039;&#039;&#039; dintre ele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def validate_input(n: int, a: int, b: int) -&amp;gt; bool:&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 60):&lt;br /&gt;
        print(&amp;quot;Numărul n trebuie să fie între 1 și 60.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= a &amp;lt;= b &amp;lt; 2 ** 64):&lt;br /&gt;
        print(&amp;quot;Numerele a și b trebuie să fie între 1 și 2^64 - 1, și a trebuie să fie mai mic sau egal cu b.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def putere_2_interval(n, a, b):&lt;br /&gt;
    powers_of_2 = []&lt;br /&gt;
    for i in range(64):&lt;br /&gt;
        power_of_2 = 2 ** i&lt;br /&gt;
        if a &amp;lt;= power_of_2 &amp;lt;= b:&lt;br /&gt;
            powers_of_2.append(power_of_2)&lt;br /&gt;
&lt;br /&gt;
    powers_of_2.sort()&lt;br /&gt;
    for i in range(min(n, len(powers_of_2))):&lt;br /&gt;
        print(powers_of_2[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n, a, b = map(int, input().split())&lt;br /&gt;
    if not validate_input(n, a, b):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiior impuse.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiior impuse.&amp;quot;)&lt;br /&gt;
        putere_2_interval(n, a, b)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Acest cod este o implementare Python a unei funcții numită &amp;quot;putere_2_interval&amp;quot;, care primește trei parametri de intrare: n, a și b. Scopul funcției este să afișeze primele n numere întregi care sunt puteri ale lui 2 și care se află în intervalul [a, b].&lt;br /&gt;
&lt;br /&gt;
Înainte de a apela funcția &amp;quot;putere_2_interval&amp;quot;, datele de intrare sunt verificate prin intermediul funcției &amp;quot;validate_input&amp;quot;. Această funcție primește cele trei valori de intrare, verifică dacă acestea corespund condițiilor impuse, și returnează adevărat dacă datele de intrare sunt valide sau fals dacă nu sunt. În cazul în care datele de intrare nu sunt valide, se afișează un mesaj de eroare și programul se oprește.&lt;br /&gt;
&lt;br /&gt;
Dacă datele de intrare sunt valide, se afișează un mesaj de confirmare și se apelează funcția &amp;quot;putere_2_interval&amp;quot;. Această funcție parcurge toate puterile de 2 de la 1 la 2^63 și verifică dacă acestea se află în intervalul [a, b]. Toate puterile de 2 care se încadrează în acest interval sunt stocate într-o listă numită &amp;quot;powers_of_2&amp;quot;. Această listă este sortată în ordine crescătoare și primele n elemente sunt afișate pe ecran.&lt;br /&gt;
&lt;br /&gt;
În final, dacă datele de intrare sunt corecte, programul afișează primele n puteri ale lui 2 care se află în intervalul [a, b], sau un mesaj de eroare în caz contrar.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2579_-_Putere_2_Interval&amp;diff=6190</id>
		<title>2579 - Putere 2 Interval</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2579_-_Putere_2_Interval&amp;diff=6190"/>
		<updated>2023-05-07T19:16:42Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se citesc 3 numere naturale &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039; și &#039;&#039;&#039;b&#039;&#039;&#039;. Afișați primele &#039;&#039;&#039;n&#039;&#039;&#039; puteri ale lui &#039;&#039;&#039;2&#039;&#039;&#039;, în ordine crescătoare, din intervalul &#039;&#039;&#039;[a,b]&#039;&#039;&#039;. Dacă nu există cel puțin n puteri ale lui &#039;&#039;&#039;2&#039;&#039;&#039; în interval, atunci se vor afișa cele care există.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039; și &#039;&#039;&#039;b&#039;&#039;&#039;, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran puterile lui &#039;&#039;&#039;2&#039;&#039;&#039; din intervalul &#039;&#039;&#039;[a,b]&#039;&#039;&#039;.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ n ≤ 60&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a ≤ b &amp;lt; 2^64&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare  &#039;&#039;&#039;&lt;br /&gt;
:2 &lt;br /&gt;
:6 &lt;br /&gt;
:35&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:8 16&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
În interval există &#039;&#039;&#039;3&#039;&#039;&#039; puteri ale lui &#039;&#039;&#039;2&#039;&#039;&#039;, dar s-au afișat doar &#039;&#039;&#039;n&#039;&#039;&#039; dintre ele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n: int, a: int, b: int) -&amp;gt; bool:&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 60):&lt;br /&gt;
        print(&amp;quot;Numărul n trebuie să fie între 1 și 60.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= a &amp;lt;= b &amp;lt; 2**64):&lt;br /&gt;
        print(&amp;quot;Numerele a și b trebuie să fie între 1 și 2^64 - 1, și a trebuie să fie mai mic sau egal cu b.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    n, a, b = map(int, input().split())&lt;br /&gt;
    if not validate_input(n, a, b):&lt;br /&gt;
        return&lt;br /&gt;
    &lt;br /&gt;
    powers_of_2 = []&lt;br /&gt;
    for i in range(64):&lt;br /&gt;
        power_of_2 = 2**i&lt;br /&gt;
        if a &amp;lt;= power_of_2 &amp;lt;= b:&lt;br /&gt;
            powers_of_2.append(power_of_2)&lt;br /&gt;
    &lt;br /&gt;
    powers_of_2.sort()&lt;br /&gt;
    for i in range(min(n, len(powers_of_2))):&lt;br /&gt;
        print(powers_of_2[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie== &lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
Funcția validate_input este folosită pentru a valida inputul citit de la tastatură. Aceasta verifică dacă valorile citite pentru n, a, și b respectă restricțiile date. Dacă inputul nu este valid, se va afișa un mesaj de eroare și funcția va returna False. Altfel, funcția va returna True.&lt;br /&gt;
&lt;br /&gt;
În funcția main, citim inputul de la tastatură folosind input() și îl procesăm folosind funcția map() și split() pentru a separa valorile citite. Apoi, verificăm dacă inputul este valid folosind funcția validate_input. Dacă inputul nu este valid, funcția se va încheia.&lt;br /&gt;
&lt;br /&gt;
În continuare, parcurgem toate puterile lui 2 din intervalul [a, b], și le stocăm în lista powers_of_2. După ce am stocat toate puterile lui 2 din interval, sortăm lista și afișăm primele n elemente folosind un for loop.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2579_-_Putere_2_Interval&amp;diff=6189</id>
		<title>2579 - Putere 2 Interval</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2579_-_Putere_2_Interval&amp;diff=6189"/>
		<updated>2023-05-07T19:16:10Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se citesc 3 numere naturale &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039; și &#039;&#039;&#039;b&#039;&#039;&#039;. Afișați primele &#039;&#039;&#039;n&#039;&#039;&#039; puteri ale lui &#039;&#039;&#039;2&#039;&#039;&#039;, în ordine crescătoare, din intervalul &#039;&#039;&#039;[a,b]&#039;&#039;&#039;. Dacă nu există cel puțin n puteri ale lui &#039;&#039;&#039;2&#039;&#039;&#039; în interval, atunci se vor afișa cele care există.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;a&#039;&#039;&#039; și &#039;&#039;&#039;b&#039;&#039;&#039;, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran puterile lui &#039;&#039;&#039;2&#039;&#039;&#039; din intervalul &#039;&#039;&#039;[a,b]&#039;&#039;&#039;.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ n ≤ 60&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a ≤ b &amp;lt; 2^64&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare  &#039;&#039;&#039;&lt;br /&gt;
  2 6 35&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 8 16&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
În interval există &#039;&#039;&#039;3&#039;&#039;&#039; puteri ale lui &#039;&#039;&#039;2&#039;&#039;&#039;, dar s-au afișat doar &#039;&#039;&#039;n&#039;&#039;&#039; dintre ele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n: int, a: int, b: int) -&amp;gt; bool:&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 60):&lt;br /&gt;
        print(&amp;quot;Numărul n trebuie să fie între 1 și 60.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    if not (1 &amp;lt;= a &amp;lt;= b &amp;lt; 2**64):&lt;br /&gt;
        print(&amp;quot;Numerele a și b trebuie să fie între 1 și 2^64 - 1, și a trebuie să fie mai mic sau egal cu b.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    n, a, b = map(int, input().split())&lt;br /&gt;
    if not validate_input(n, a, b):&lt;br /&gt;
        return&lt;br /&gt;
    &lt;br /&gt;
    powers_of_2 = []&lt;br /&gt;
    for i in range(64):&lt;br /&gt;
        power_of_2 = 2**i&lt;br /&gt;
        if a &amp;lt;= power_of_2 &amp;lt;= b:&lt;br /&gt;
            powers_of_2.append(power_of_2)&lt;br /&gt;
    &lt;br /&gt;
    powers_of_2.sort()&lt;br /&gt;
    for i in range(min(n, len(powers_of_2))):&lt;br /&gt;
        print(powers_of_2[i], end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie== &lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
Funcția validate_input este folosită pentru a valida inputul citit de la tastatură. Aceasta verifică dacă valorile citite pentru n, a, și b respectă restricțiile date. Dacă inputul nu este valid, se va afișa un mesaj de eroare și funcția va returna False. Altfel, funcția va returna True.&lt;br /&gt;
&lt;br /&gt;
În funcția main, citim inputul de la tastatură folosind input() și îl procesăm folosind funcția map() și split() pentru a separa valorile citite. Apoi, verificăm dacă inputul este valid folosind funcția validate_input. Dacă inputul nu este valid, funcția se va încheia.&lt;br /&gt;
&lt;br /&gt;
În continuare, parcurgem toate puterile lui 2 din intervalul [a, b], și le stocăm în lista powers_of_2. După ce am stocat toate puterile lui 2 din interval, sortăm lista și afișăm primele n elemente folosind un for loop.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0326_-_Ultimul_Par&amp;diff=6188</id>
		<title>0326 - Ultimul Par</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0326_-_Ultimul_Par&amp;diff=6188"/>
		<updated>2023-05-07T19:15:16Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine ultimul număr par dintre cele date.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citeşte de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, apoi n numere naturale, dispuse pe mai multe linii.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul afişează pe ecran ultimul număr par dintre cele date. Dacă nu au fost citite numere pare, se va afişa doar mesajul &#039;&#039;&#039;IMPOSIBIL&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;0&amp;lt; n &amp;lt;= 100&#039;&#039;&#039;&lt;br /&gt;
*cele n numere citite vor avea cel mult &#039;&#039;&#039;9&#039;&#039;&#039; cifre&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Date de intrare  &#039;&#039;&#039;&lt;br /&gt;
:8&lt;br /&gt;
:12 &lt;br /&gt;
:15 &lt;br /&gt;
:68 &lt;br /&gt;
:13 &lt;br /&gt;
:17&lt;br /&gt;
:90 &lt;br /&gt;
:31 &lt;br /&gt;
:43 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Date de ieşire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:90&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def validare(n):&lt;br /&gt;
    return 0 &amp;lt; int(n) &amp;lt;= 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare2(numar):&lt;br /&gt;
    return 0 &amp;lt; int(numar) &amp;lt;= 10 ** 9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def ultimul_numar_par(n, numere):&lt;br /&gt;
    ultimul_par = None&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        if numar % 2 == 0:&lt;br /&gt;
            ultimul_par = numar&lt;br /&gt;
    if ultimul_par is None:&lt;br /&gt;
        print(&amp;quot;IMPOSIBIL&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(ultimul_par)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = input(&amp;quot;Introduceti numarul de numere: &amp;quot;)&lt;br /&gt;
    numere = []&lt;br /&gt;
    if validare(n):&lt;br /&gt;
        n = int(n)&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            numar = input()&lt;br /&gt;
            if validare(numar):&lt;br /&gt;
                numar = int(numar)&lt;br /&gt;
                numere.append(numar)&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        ultimul_numar_par(n, numere)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Funcția ultimul_numar_par primește numărul total de numere n și o listă de numere numere, și determină ultimul număr par din lista.&lt;br /&gt;
Funcția main primește de la utilizator numărul total de numere n și o listă de n numere separate prin spații pe mai multe linii. Apoi, apelează funcția ultimul_numar_par cu aceste date.&lt;br /&gt;
Restricțiile sunt îndeplinite prin verificarea că n este între 1 și 100, iar numerele citite au cel mult 9 cifre.&lt;br /&gt;
În cazul în care nu există numere pare în lista, se afișează mesajul &amp;quot;IMPOSIBIL&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0326_-_Ultimul_Par&amp;diff=6187</id>
		<title>0326 - Ultimul Par</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0326_-_Ultimul_Par&amp;diff=6187"/>
		<updated>2023-05-07T19:14:44Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Rezolvare ver. 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine ultimul număr par dintre cele date.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citeşte de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, apoi n numere naturale, dispuse pe mai multe linii.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul afişează pe ecran ultimul număr par dintre cele date. Dacă nu au fost citite numere pare, se va afişa doar mesajul &#039;&#039;&#039;IMPOSIBIL&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;0&amp;lt; n &amp;lt;= 100&#039;&#039;&#039;&lt;br /&gt;
*cele n numere citite vor avea cel mult &#039;&#039;&#039;9&#039;&#039;&#039; cifre&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Date de intrare  &#039;&#039;&#039;&lt;br /&gt;
:8&lt;br /&gt;
:12 15 68 13 17&lt;br /&gt;
:90 31 43 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Date de ieşire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:90&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def validare(n):&lt;br /&gt;
    return 0 &amp;lt; int(n) &amp;lt;= 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare2(numar):&lt;br /&gt;
    return 0 &amp;lt; int(numar) &amp;lt;= 10 ** 9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def ultimul_numar_par(n, numere):&lt;br /&gt;
    ultimul_par = None&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        if numar % 2 == 0:&lt;br /&gt;
            ultimul_par = numar&lt;br /&gt;
    if ultimul_par is None:&lt;br /&gt;
        print(&amp;quot;IMPOSIBIL&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(ultimul_par)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = input(&amp;quot;Introduceti numarul de numere: &amp;quot;)&lt;br /&gt;
    numere = []&lt;br /&gt;
    if validare(n):&lt;br /&gt;
        n = int(n)&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            numar = input()&lt;br /&gt;
            if validare(numar):&lt;br /&gt;
                numar = int(numar)&lt;br /&gt;
                numere.append(numar)&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        ultimul_numar_par(n, numere)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Funcția ultimul_numar_par primește numărul total de numere n și o listă de numere numere, și determină ultimul număr par din lista.&lt;br /&gt;
Funcția main primește de la utilizator numărul total de numere n și o listă de n numere separate prin spații pe mai multe linii. Apoi, apelează funcția ultimul_numar_par cu aceste date.&lt;br /&gt;
Restricțiile sunt îndeplinite prin verificarea că n este între 1 și 100, iar numerele citite au cel mult 9 cifre.&lt;br /&gt;
În cazul în care nu există numere pare în lista, se afișează mesajul &amp;quot;IMPOSIBIL&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0326_-_Ultimul_Par&amp;diff=6186</id>
		<title>0326 - Ultimul Par</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0326_-_Ultimul_Par&amp;diff=6186"/>
		<updated>2023-05-07T19:14:25Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Rezolvare ver. 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine ultimul număr par dintre cele date.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citeşte de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, apoi n numere naturale, dispuse pe mai multe linii.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul afişează pe ecran ultimul număr par dintre cele date. Dacă nu au fost citite numere pare, se va afişa doar mesajul &#039;&#039;&#039;IMPOSIBIL&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;0&amp;lt; n &amp;lt;= 100&#039;&#039;&#039;&lt;br /&gt;
*cele n numere citite vor avea cel mult &#039;&#039;&#039;9&#039;&#039;&#039; cifre&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Date de intrare  &#039;&#039;&#039;&lt;br /&gt;
:8&lt;br /&gt;
:12 15 68 13 17&lt;br /&gt;
:90 31 43 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Date de ieşire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:90&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def validare(n):&lt;br /&gt;
    return 0 &amp;lt; int(n) &amp;lt;= 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare2(numar):&lt;br /&gt;
    return 0 &amp;lt;= 10 ** 9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def ultimul_numar_par(n, numere):&lt;br /&gt;
    ultimul_par = None&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        if numar % 2 == 0:&lt;br /&gt;
            ultimul_par = numar&lt;br /&gt;
    if ultimul_par is None:&lt;br /&gt;
        print(&amp;quot;IMPOSIBIL&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(ultimul_par)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = input(&amp;quot;Introduceti numarul de numere: &amp;quot;)&lt;br /&gt;
    numere = []&lt;br /&gt;
    if validare(n):&lt;br /&gt;
        n = int(n)&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            numar = input()&lt;br /&gt;
            if validare(numar):&lt;br /&gt;
                numar = int(numar)&lt;br /&gt;
                numere.append(numar)&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        ultimul_numar_par(n, numere)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Funcția ultimul_numar_par primește numărul total de numere n și o listă de numere numere, și determină ultimul număr par din lista.&lt;br /&gt;
Funcția main primește de la utilizator numărul total de numere n și o listă de n numere separate prin spații pe mai multe linii. Apoi, apelează funcția ultimul_numar_par cu aceste date.&lt;br /&gt;
Restricțiile sunt îndeplinite prin verificarea că n este între 1 și 100, iar numerele citite au cel mult 9 cifre.&lt;br /&gt;
În cazul în care nu există numere pare în lista, se afișează mesajul &amp;quot;IMPOSIBIL&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0326_-_Ultimul_Par&amp;diff=6184</id>
		<title>0326 - Ultimul Par</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0326_-_Ultimul_Par&amp;diff=6184"/>
		<updated>2023-05-07T19:02:32Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Să se determine ultimul număr par dintre cele date.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citeşte de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, apoi n numere naturale, dispuse pe mai multe linii.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul afişează pe ecran ultimul număr par dintre cele date. Dacă nu au fost citite numere pare, se va afişa doar mesajul &#039;&#039;&#039;IMPOSIBIL&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;0&amp;lt; n &amp;lt;= 100&#039;&#039;&#039;&lt;br /&gt;
*cele n numere citite vor avea cel mult &#039;&#039;&#039;9&#039;&#039;&#039; cifre&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Date de intrare  &#039;&#039;&#039;&lt;br /&gt;
:8&lt;br /&gt;
:12 15 68 13 17&lt;br /&gt;
:90 31 43 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Date de ieşire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:90&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def ultimul_numar_par(n, numere):&lt;br /&gt;
    ultimul_par = None&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        if numar % 2 == 0:&lt;br /&gt;
            ultimul_par = numar&lt;br /&gt;
    if ultimul_par is None:&lt;br /&gt;
        print(&amp;quot;IMPOSIBIL&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(ultimul_par)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = int(input(&amp;quot;Introduceti numarul de numere: &amp;quot;))&lt;br /&gt;
    numere = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        numere += [int(x) for x in input().split()]&lt;br /&gt;
    ultimul_numar_par(n, numere)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Funcția ultimul_numar_par primește numărul total de numere n și o listă de numere numere, și determină ultimul număr par din lista.&lt;br /&gt;
Funcția main primește de la utilizator numărul total de numere n și o listă de n numere separate prin spații pe mai multe linii. Apoi, apelează funcția ultimul_numar_par cu aceste date.&lt;br /&gt;
Restricțiile sunt îndeplinite prin verificarea că n este între 1 și 100, iar numerele citite au cel mult 9 cifre.&lt;br /&gt;
În cazul în care nu există numere pare în lista, se afișează mesajul &amp;quot;IMPOSIBIL&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2276_-_Cb&amp;diff=6182</id>
		<title>2276 - Cb</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2276_-_Cb&amp;diff=6182"/>
		<updated>2023-05-07T18:45:28Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Explicatie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
Se consideră un șir &#039;&#039;&#039;a[1], a[2], …, a[n]&#039;&#039;&#039; de numere naturale. Se dau și &#039;&#039;&#039;T&#039;&#039;&#039; intervale închise de forma &#039;&#039;&#039;[x, y], cu x ≤ y.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Pentru fiecare din cele &#039;&#039;&#039;T&#039;&#039;&#039; intervale de forma &#039;&#039;&#039;[x, y]&#039;&#039;&#039; trebuie să răspundeți la întrebarea: câte numere din șir aparțin intervalului&#039;&#039;&#039; [x, y]&#039;&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;T&#039;&#039;&#039;, apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații, &#039;&#039;&#039;a[1], a[2], …, a[n]&#039;&#039;&#039;. Pe următoarele &#039;&#039;&#039;T&#039;&#039;&#039; linii se află câte două numere naturale &#039;&#039;&#039;x&#039;&#039;&#039; și&#039;&#039;&#039; y&#039;&#039;&#039; reprezentând un interval &#039;&#039;&#039;[x, y]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran &#039;&#039;&#039;T&#039;&#039;&#039; linii. Pe fiecare linie &#039;&#039;&#039;i (i=1..T)&#039;&#039;&#039; se va afla un singur număr natural reprezentând răspunsul la a &#039;&#039;&#039;i&#039;&#039;&#039;-a întrebare. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ n, T ≤ 200 000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;0 ≤ a[i] ≤ 2 000 000 000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;0 ≤ x ≤ y ≤ 2 000 000 000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:9 7&lt;br /&gt;
:6 1 3 5 3 3 9 20 9&lt;br /&gt;
:4 10&lt;br /&gt;
:0 100&lt;br /&gt;
:0 1&lt;br /&gt;
:500 506&lt;br /&gt;
:3 3&lt;br /&gt;
:10 18&lt;br /&gt;
:3 9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:4&lt;br /&gt;
:9&lt;br /&gt;
:1&lt;br /&gt;
:0&lt;br /&gt;
:3&lt;br /&gt;
:0&lt;br /&gt;
:7&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, T, a, intervals):&lt;br /&gt;
    if len(a) != n:&lt;br /&gt;
        return False&lt;br /&gt;
    for x, y in intervals:&lt;br /&gt;
        if x &amp;gt; y:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def count_numbers_in_intervals(n, T, a, intervals):&lt;br /&gt;
    if not validate_input(n, T, a, intervals):&lt;br /&gt;
        return []&lt;br /&gt;
&lt;br /&gt;
    counts = []&lt;br /&gt;
    for x, y in intervals:&lt;br /&gt;
        count = 0&lt;br /&gt;
        for num in a:&lt;br /&gt;
            if x &amp;lt;= num &amp;lt;= y:&lt;br /&gt;
                count += 1&lt;br /&gt;
        counts.append(count)&lt;br /&gt;
&lt;br /&gt;
    return counts&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n, T = map(int, input().split())&lt;br /&gt;
    a = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    intervals = []&lt;br /&gt;
    for i in range(T):&lt;br /&gt;
        x, y = map(int, input().split())&lt;br /&gt;
        intervals.append((x, y))&lt;br /&gt;
    if validate_input(n, T, a, intervals):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        counts = count_numbers_in_intervals(n, T, a, intervals)&lt;br /&gt;
        for count in counts:&lt;br /&gt;
            print(count)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație== &lt;br /&gt;
Acest program citește întâi valorile n și T de la intrare folosind map(int, input().split()), care face conversia valorilor citite de la tastatură în lista de întregi. Acestea reprezintă, respectiv, numărul de elemente din lista a și numărul de intervale pe care trebuie să le verificăm.&lt;br /&gt;
&lt;br /&gt;
Următoarea linie citește lista a de n elemente de la intrare, folosind list(map(int, input().split())). Această linie citește o singură linie de intrare, separă elementele în funcție de spațiu (split()), le converteste în lista de întregi (map(int, ...)) și creează lista finală (list(...)).&lt;br /&gt;
&lt;br /&gt;
În continuare, linia for i in range(T): iterăm prin fiecare interval și adăugăm intervalele la lista de intervale folosind linia intervals.append((x, y)), unde (x, y) este o tuplă care conține cele două valori ale intervalului.&lt;br /&gt;
&lt;br /&gt;
Apelăm funcția count_numbers_in_intervals cu argumentele necesare și apoi afișăm rezultatele într-un format specificat.&lt;br /&gt;
&lt;br /&gt;
Funcția count_numbers_in_intervals primește numărul de elemente din lista a, numărul de intervale, lista de numere a și o listă de intervale și returnează o listă cu numărul de elemente din fiecare interval.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_input verifică dacă datele de intrare sunt valide și returnează True dacă sunt și False în caz contrar. De asemenea, verifică dacă intervalul dat este valid, adică x este mai mic sau egal cu y.&lt;br /&gt;
&lt;br /&gt;
Pentru a verifica dacă un număr se află într-un interval dat, iterăm prin lista a și verificăm dacă fiecare element este mai mare sau egal cu limita inferioară x și mai mic sau egal cu limita superioară y. Dacă acest lucru este adevărat, incrementăm count și continuăm până când am verificat toate elementele din lista. La final, adăugăm valoarea count la lista counts și returnăm lista de numere.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2276_-_Cb&amp;diff=6181</id>
		<title>2276 - Cb</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2276_-_Cb&amp;diff=6181"/>
		<updated>2023-05-07T18:45:14Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Rezolvare ver. 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
Se consideră un șir &#039;&#039;&#039;a[1], a[2], …, a[n]&#039;&#039;&#039; de numere naturale. Se dau și &#039;&#039;&#039;T&#039;&#039;&#039; intervale închise de forma &#039;&#039;&#039;[x, y], cu x ≤ y.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Pentru fiecare din cele &#039;&#039;&#039;T&#039;&#039;&#039; intervale de forma &#039;&#039;&#039;[x, y]&#039;&#039;&#039; trebuie să răspundeți la întrebarea: câte numere din șir aparțin intervalului&#039;&#039;&#039; [x, y]&#039;&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;T&#039;&#039;&#039;, apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații, &#039;&#039;&#039;a[1], a[2], …, a[n]&#039;&#039;&#039;. Pe următoarele &#039;&#039;&#039;T&#039;&#039;&#039; linii se află câte două numere naturale &#039;&#039;&#039;x&#039;&#039;&#039; și&#039;&#039;&#039; y&#039;&#039;&#039; reprezentând un interval &#039;&#039;&#039;[x, y]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran &#039;&#039;&#039;T&#039;&#039;&#039; linii. Pe fiecare linie &#039;&#039;&#039;i (i=1..T)&#039;&#039;&#039; se va afla un singur număr natural reprezentând răspunsul la a &#039;&#039;&#039;i&#039;&#039;&#039;-a întrebare. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ n, T ≤ 200 000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;0 ≤ a[i] ≤ 2 000 000 000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;0 ≤ x ≤ y ≤ 2 000 000 000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:9 7&lt;br /&gt;
:6 1 3 5 3 3 9 20 9&lt;br /&gt;
:4 10&lt;br /&gt;
:0 100&lt;br /&gt;
:0 1&lt;br /&gt;
:500 506&lt;br /&gt;
:3 3&lt;br /&gt;
:10 18&lt;br /&gt;
:3 9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:4&lt;br /&gt;
:9&lt;br /&gt;
:1&lt;br /&gt;
:0&lt;br /&gt;
:3&lt;br /&gt;
:0&lt;br /&gt;
:7&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, T, a, intervals):&lt;br /&gt;
    if len(a) != n:&lt;br /&gt;
        return False&lt;br /&gt;
    for x, y in intervals:&lt;br /&gt;
        if x &amp;gt; y:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def count_numbers_in_intervals(n, T, a, intervals):&lt;br /&gt;
    if not validate_input(n, T, a, intervals):&lt;br /&gt;
        return []&lt;br /&gt;
&lt;br /&gt;
    counts = []&lt;br /&gt;
    for x, y in intervals:&lt;br /&gt;
        count = 0&lt;br /&gt;
        for num in a:&lt;br /&gt;
            if x &amp;lt;= num &amp;lt;= y:&lt;br /&gt;
                count += 1&lt;br /&gt;
        counts.append(count)&lt;br /&gt;
&lt;br /&gt;
    return counts&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n, T = map(int, input().split())&lt;br /&gt;
    a = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    intervals = []&lt;br /&gt;
    for i in range(T):&lt;br /&gt;
        x, y = map(int, input().split())&lt;br /&gt;
        intervals.append((x, y))&lt;br /&gt;
    if validate_input(n, T, a, intervals):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        counts = count_numbers_in_intervals(n, T, a, intervals)&lt;br /&gt;
        for count in counts:&lt;br /&gt;
            print(count)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie== &lt;br /&gt;
Acest program citește întâi valorile n și T de la intrare folosind map(int, input().split()), care face conversia valorilor citite de la tastatură în lista de întregi. Acestea reprezintă, respectiv, numărul de elemente din lista a și numărul de intervale pe care trebuie să le verificăm.&lt;br /&gt;
&lt;br /&gt;
Următoarea linie citește lista a de n elemente de la intrare, folosind list(map(int, input().split())). Această linie citește o singură linie de intrare, separă elementele în funcție de spațiu (split()), le converteste în lista de întregi (map(int, ...)) și creează lista finală (list(...)).&lt;br /&gt;
&lt;br /&gt;
În continuare, linia for i in range(T): iterăm prin fiecare interval și adăugăm intervalele la lista de intervale folosind linia intervals.append((x, y)), unde (x, y) este o tuplă care conține cele două valori ale intervalului.&lt;br /&gt;
&lt;br /&gt;
Apelăm funcția count_numbers_in_intervals cu argumentele necesare și apoi afișăm rezultatele într-un format specificat.&lt;br /&gt;
&lt;br /&gt;
Funcția count_numbers_in_intervals primește numărul de elemente din lista a, numărul de intervale, lista de numere a și o listă de intervale și returnează o listă cu numărul de elemente din fiecare interval.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_input verifică dacă datele de intrare sunt valide și returnează True dacă sunt și False în caz contrar. De asemenea, verifică dacă intervalul dat este valid, adică x este mai mic sau egal cu y.&lt;br /&gt;
&lt;br /&gt;
Pentru a verifica dacă un număr se află într-un interval dat, iterăm prin lista a și verificăm dacă fiecare element este mai mare sau egal cu limita inferioară x și mai mic sau egal cu limita superioară y. Dacă acest lucru este adevărat, incrementăm count și continuăm până când am verificat toate elementele din lista. La final, adăugăm valoarea count la lista counts și returnăm lista de numere.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2276_-_Cb&amp;diff=6180</id>
		<title>2276 - Cb</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2276_-_Cb&amp;diff=6180"/>
		<updated>2023-05-07T18:43:02Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
Se consideră un șir &#039;&#039;&#039;a[1], a[2], …, a[n]&#039;&#039;&#039; de numere naturale. Se dau și &#039;&#039;&#039;T&#039;&#039;&#039; intervale închise de forma &#039;&#039;&#039;[x, y], cu x ≤ y.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Pentru fiecare din cele &#039;&#039;&#039;T&#039;&#039;&#039; intervale de forma &#039;&#039;&#039;[x, y]&#039;&#039;&#039; trebuie să răspundeți la întrebarea: câte numere din șir aparțin intervalului&#039;&#039;&#039; [x, y]&#039;&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;T&#039;&#039;&#039;, apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații, &#039;&#039;&#039;a[1], a[2], …, a[n]&#039;&#039;&#039;. Pe următoarele &#039;&#039;&#039;T&#039;&#039;&#039; linii se află câte două numere naturale &#039;&#039;&#039;x&#039;&#039;&#039; și&#039;&#039;&#039; y&#039;&#039;&#039; reprezentând un interval &#039;&#039;&#039;[x, y]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran &#039;&#039;&#039;T&#039;&#039;&#039; linii. Pe fiecare linie &#039;&#039;&#039;i (i=1..T)&#039;&#039;&#039; se va afla un singur număr natural reprezentând răspunsul la a &#039;&#039;&#039;i&#039;&#039;&#039;-a întrebare. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ n, T ≤ 200 000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;0 ≤ a[i] ≤ 2 000 000 000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;0 ≤ x ≤ y ≤ 2 000 000 000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:9 7&lt;br /&gt;
:6 1 3 5 3 3 9 20 9&lt;br /&gt;
:4 10&lt;br /&gt;
:0 100&lt;br /&gt;
:0 1&lt;br /&gt;
:500 506&lt;br /&gt;
:3 3&lt;br /&gt;
:10 18&lt;br /&gt;
:3 9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
:4&lt;br /&gt;
:9&lt;br /&gt;
:1&lt;br /&gt;
:0&lt;br /&gt;
:3&lt;br /&gt;
:0&lt;br /&gt;
:7&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, T, a, intervals):&lt;br /&gt;
    if len(a) != n:&lt;br /&gt;
        return False&lt;br /&gt;
    for x, y in intervals:&lt;br /&gt;
        if x &amp;gt; y:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def count_numbers_in_intervals(n, T, a, intervals):&lt;br /&gt;
    if not validate_input(n, T, a, intervals):&lt;br /&gt;
        return []&lt;br /&gt;
&lt;br /&gt;
    counts = []&lt;br /&gt;
    for x, y in intervals:&lt;br /&gt;
        count = 0&lt;br /&gt;
        for num in a:&lt;br /&gt;
            if x &amp;lt;= num &amp;lt;= y:&lt;br /&gt;
                count += 1&lt;br /&gt;
        counts.append(count)&lt;br /&gt;
&lt;br /&gt;
    return counts&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n, T = map(int, input().split())&lt;br /&gt;
    a = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    intervals = []&lt;br /&gt;
    for i in range(T):&lt;br /&gt;
        x, y = map(int, input().split())&lt;br /&gt;
        intervals.append((x, y))&lt;br /&gt;
&lt;br /&gt;
    counts = count_numbers_in_intervals(n, T, a, intervals)&lt;br /&gt;
&lt;br /&gt;
    for count in counts:&lt;br /&gt;
        print(count)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie== &lt;br /&gt;
Acest program citește întâi valorile n și T de la intrare folosind map(int, input().split()), care face conversia valorilor citite de la tastatură în lista de întregi. Acestea reprezintă, respectiv, numărul de elemente din lista a și numărul de intervale pe care trebuie să le verificăm.&lt;br /&gt;
&lt;br /&gt;
Următoarea linie citește lista a de n elemente de la intrare, folosind list(map(int, input().split())). Această linie citește o singură linie de intrare, separă elementele în funcție de spațiu (split()), le converteste în lista de întregi (map(int, ...)) și creează lista finală (list(...)).&lt;br /&gt;
&lt;br /&gt;
În continuare, linia for i in range(T): iterăm prin fiecare interval și adăugăm intervalele la lista de intervale folosind linia intervals.append((x, y)), unde (x, y) este o tuplă care conține cele două valori ale intervalului.&lt;br /&gt;
&lt;br /&gt;
Apelăm funcția count_numbers_in_intervals cu argumentele necesare și apoi afișăm rezultatele într-un format specificat.&lt;br /&gt;
&lt;br /&gt;
Funcția count_numbers_in_intervals primește numărul de elemente din lista a, numărul de intervale, lista de numere a și o listă de intervale și returnează o listă cu numărul de elemente din fiecare interval.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_input verifică dacă datele de intrare sunt valide și returnează True dacă sunt și False în caz contrar. De asemenea, verifică dacă intervalul dat este valid, adică x este mai mic sau egal cu y.&lt;br /&gt;
&lt;br /&gt;
Pentru a verifica dacă un număr se află într-un interval dat, iterăm prin lista a și verificăm dacă fiecare element este mai mare sau egal cu limita inferioară x și mai mic sau egal cu limita superioară y. Dacă acest lucru este adevărat, incrementăm count și continuăm până când am verificat toate elementele din lista. La final, adăugăm valoarea count la lista counts și returnăm lista de numere.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2276_-_Cb&amp;diff=6179</id>
		<title>2276 - Cb</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2276_-_Cb&amp;diff=6179"/>
		<updated>2023-05-07T18:42:19Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
Se consideră un șir &#039;&#039;&#039;a[1], a[2], …, a[n]&#039;&#039;&#039; de numere naturale. Se dau și &#039;&#039;&#039;T&#039;&#039;&#039; intervale închise de forma &#039;&#039;&#039;[x, y], cu x ≤ y.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Pentru fiecare din cele &#039;&#039;&#039;T&#039;&#039;&#039; intervale de forma &#039;&#039;&#039;[x, y]&#039;&#039;&#039; trebuie să răspundeți la întrebarea: câte numere din șir aparțin intervalului&#039;&#039;&#039; [x, y]&#039;&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;T&#039;&#039;&#039;, apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații, &#039;&#039;&#039;a[1], a[2], …, a[n]&#039;&#039;&#039;. Pe următoarele &#039;&#039;&#039;T&#039;&#039;&#039; linii se află câte două numere naturale &#039;&#039;&#039;x&#039;&#039;&#039; și&#039;&#039;&#039; y&#039;&#039;&#039; reprezentând un interval &#039;&#039;&#039;[x, y]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Programul va afișa pe ecran &#039;&#039;&#039;T&#039;&#039;&#039; linii. Pe fiecare linie &#039;&#039;&#039;i (i=1..T)&#039;&#039;&#039; se va afla un singur număr natural reprezentând răspunsul la a &#039;&#039;&#039;i&#039;&#039;&#039;-a întrebare. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ n, T ≤ 200 000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;0 ≤ a[i] ≤ 2 000 000 000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;0 ≤ x ≤ y ≤ 2 000 000 000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
 9 7&lt;br /&gt;
 6 1 3 5 3 3 9 20 9&lt;br /&gt;
 4 10&lt;br /&gt;
 0 100&lt;br /&gt;
 0 1&lt;br /&gt;
 500 506&lt;br /&gt;
 3 3&lt;br /&gt;
 10 18&lt;br /&gt;
 3 9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 4&lt;br /&gt;
 9&lt;br /&gt;
 1&lt;br /&gt;
 0&lt;br /&gt;
 3&lt;br /&gt;
 0&lt;br /&gt;
 7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, T, a, intervals):&lt;br /&gt;
    if len(a) != n:&lt;br /&gt;
        return False&lt;br /&gt;
    for x, y in intervals:&lt;br /&gt;
        if x &amp;gt; y:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def count_numbers_in_intervals(n, T, a, intervals):&lt;br /&gt;
    if not validate_input(n, T, a, intervals):&lt;br /&gt;
        return []&lt;br /&gt;
&lt;br /&gt;
    counts = []&lt;br /&gt;
    for x, y in intervals:&lt;br /&gt;
        count = 0&lt;br /&gt;
        for num in a:&lt;br /&gt;
            if x &amp;lt;= num &amp;lt;= y:&lt;br /&gt;
                count += 1&lt;br /&gt;
        counts.append(count)&lt;br /&gt;
&lt;br /&gt;
    return counts&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n, T = map(int, input().split())&lt;br /&gt;
    a = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    intervals = []&lt;br /&gt;
    for i in range(T):&lt;br /&gt;
        x, y = map(int, input().split())&lt;br /&gt;
        intervals.append((x, y))&lt;br /&gt;
&lt;br /&gt;
    counts = count_numbers_in_intervals(n, T, a, intervals)&lt;br /&gt;
&lt;br /&gt;
    for count in counts:&lt;br /&gt;
        print(count)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie== &lt;br /&gt;
Acest program citește întâi valorile n și T de la intrare folosind map(int, input().split()), care face conversia valorilor citite de la tastatură în lista de întregi. Acestea reprezintă, respectiv, numărul de elemente din lista a și numărul de intervale pe care trebuie să le verificăm.&lt;br /&gt;
&lt;br /&gt;
Următoarea linie citește lista a de n elemente de la intrare, folosind list(map(int, input().split())). Această linie citește o singură linie de intrare, separă elementele în funcție de spațiu (split()), le converteste în lista de întregi (map(int, ...)) și creează lista finală (list(...)).&lt;br /&gt;
&lt;br /&gt;
În continuare, linia for i in range(T): iterăm prin fiecare interval și adăugăm intervalele la lista de intervale folosind linia intervals.append((x, y)), unde (x, y) este o tuplă care conține cele două valori ale intervalului.&lt;br /&gt;
&lt;br /&gt;
Apelăm funcția count_numbers_in_intervals cu argumentele necesare și apoi afișăm rezultatele într-un format specificat.&lt;br /&gt;
&lt;br /&gt;
Funcția count_numbers_in_intervals primește numărul de elemente din lista a, numărul de intervale, lista de numere a și o listă de intervale și returnează o listă cu numărul de elemente din fiecare interval.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_input verifică dacă datele de intrare sunt valide și returnează True dacă sunt și False în caz contrar. De asemenea, verifică dacă intervalul dat este valid, adică x este mai mic sau egal cu y.&lt;br /&gt;
&lt;br /&gt;
Pentru a verifica dacă un număr se află într-un interval dat, iterăm prin lista a și verificăm dacă fiecare element este mai mare sau egal cu limita inferioară x și mai mic sau egal cu limita superioară y. Dacă acest lucru este adevărat, incrementăm count și continuăm până când am verificat toate elementele din lista. La final, adăugăm valoarea count la lista counts și returnăm lista de numere.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2014_-_Canguri&amp;diff=6178</id>
		<title>2014 - Canguri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2014_-_Canguri&amp;diff=6178"/>
		<updated>2023-05-07T18:41:58Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Explicatie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
La proba de atletism s-au calificat trei canguri care trebuie să efectueze sărituri pe o pistă de 800 metri.&lt;br /&gt;
Fiecare cangur se aliniază la linia de start, îşi lipeşte pe marsupiu eticheta cu numărul său de concurs iar apoi când se dă stratul efectuează săritură după săritură până trece linia de sosire.&lt;br /&gt;
&lt;br /&gt;
Cunoscând lungimea săriturii fiecărui cangur (exprimată în metri) şi faptul că nu există doi canguri cu sărituri de aceeaşi lungime, scrieți un program care să determine:&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
a) Numărul de concurs al cangurului care ajunge primul la linia de sosire;&lt;br /&gt;
b) Numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Din fişierul de intrare canguri.in se citesc:&lt;br /&gt;
&lt;br /&gt;
*de pe primele trei linii, câte două numere naturale despărțite prin câte un spațiu, ce reprezintă numărul de concurs respectiv lungimea săriturii fiecărui cangur.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
În fişierul canguri.out se va scrie:&lt;br /&gt;
&lt;br /&gt;
*pe prima linie, numărul de concurs al cangurului care trece primul linia de sosire;&lt;br /&gt;
*pe cea de-a doua linie, un număr natural ce reprezintă numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
Numerele scrise pe etichetele de concurs sunt numere naturale cu maximum trei cifre&lt;br /&gt;
pentru determinarea corectă a numărului de concurs se acordă 60% din punctaj; pentru determinarea corectă a numărului de sărituri se acordă 40% din punctaj&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;canguri.in  &#039;&#039;&#039;&lt;br /&gt;
:769 2&lt;br /&gt;
:354 6&lt;br /&gt;
:129 4 &lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;canguri.out &#039;&#039;&#039;&lt;br /&gt;
:354&lt;br /&gt;
:134&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Primul cangur are numărul de concurs &#039;&#039;&#039;769&#039;&#039;&#039; şi lungimea săriturii egală cu &#039;&#039;&#039;2&#039;&#039;&#039; metri.&lt;br /&gt;
Cel de-al doilea cangur are numărul de concurs &#039;&#039;&#039;354&#039;&#039;&#039; şi lungimea săriturii de &#039;&#039;&#039;6&#039;&#039;&#039; metri.&lt;br /&gt;
Cel de-al treilea cangur are numărul de concurs &#039;&#039;&#039;129&#039;&#039;&#039; și lungimea săriturii de &#039;&#039;&#039;4&#039;&#039;&#039; metri.&lt;br /&gt;
Primul va trece linia de sosire cangurul cu numărul de concurs &#039;&#039;&#039;354.&#039;&#039;&#039;&lt;br /&gt;
El va efectua &#039;&#039;&#039;134&#039;&#039;&#039; de sărituri pentru a trece linia de sosire.&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, data):&lt;br /&gt;
    if n != 3:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if len(data[i]) != 2:&lt;br /&gt;
            return False&lt;br /&gt;
        if not data[i][0].isdigit() or not data[i][1].isdigit():&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citim datele de intrare din fisierul &amp;quot;canguri.in&amp;quot;&lt;br /&gt;
    with open(&amp;quot;canguri.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
        n = 3&lt;br /&gt;
        data = [tuple(line.strip().split()) for line in f.readlines()]&lt;br /&gt;
&lt;br /&gt;
    # Validam datele de intrare&lt;br /&gt;
    if not validate_input(n, data):&lt;br /&gt;
        print(&amp;quot;Date de intrare invalide!&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    # Sortam lista de canguri in functie de lungimea sariturii&lt;br /&gt;
    sorted_canguri = sorted(data, key=lambda x: int(x[1]))&lt;br /&gt;
&lt;br /&gt;
    # Aflam numarul de concurs al cangurului care trece primul linia de sosire&lt;br /&gt;
    numar_cangur = sorted_canguri[0][0]&lt;br /&gt;
    print(numar_cangur)&lt;br /&gt;
&lt;br /&gt;
    # Aflam numarul de sarituri efectuate de cangurul care a trecut primul linia de sosire&lt;br /&gt;
    nr_sarituri = 800 // int(sorted_canguri[0][1])&lt;br /&gt;
    print(nr_sarituri)&lt;br /&gt;
&lt;br /&gt;
    # Scriem rezultatele in fisierul &amp;quot;canguri.out&amp;quot;&lt;br /&gt;
    with open(&amp;quot;canguri.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
        f.write(str(numar_cangur) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        f.write(str(nr_sarituri) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Pentru validarea datelor de intrare, am definit funcția validate_input, care primește numărul de linii n și datele propriu-zise data și verifică dacă avem exact 3 linii de date, iar fiecare linie conține două numere naturale separate prin spațiu.&lt;br /&gt;
&lt;br /&gt;
În funcția main, citim datele de intrare din fișierul &amp;quot;canguri.in&amp;quot; și le validăm folosind funcția validate_input. Apoi, sortăm lista de canguri în funcție de lungimea săriturii&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2276_-_Cb&amp;diff=6177</id>
		<title>2276 - Cb</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2276_-_Cb&amp;diff=6177"/>
		<updated>2023-05-07T18:41:43Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Enunt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
Se consideră un șir &#039;&#039;&#039;a[1], a[2], …, a[n]&#039;&#039;&#039; de numere naturale. Se dau și &#039;&#039;&#039;T&#039;&#039;&#039; intervale închise de forma &#039;&#039;&#039;[x, y], cu x ≤ y.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Pentru fiecare din cele &#039;&#039;&#039;T&#039;&#039;&#039; intervale de forma &#039;&#039;&#039;[x, y]&#039;&#039;&#039; trebuie să răspundeți la întrebarea: câte numere din șir aparțin intervalului&#039;&#039;&#039; [x, y]&#039;&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;T&#039;&#039;&#039;, apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații, &#039;&#039;&#039;a[1], a[2], …, a[n]&#039;&#039;&#039;. Pe următoarele &#039;&#039;&#039;T&#039;&#039;&#039; linii se află câte două numere naturale &#039;&#039;&#039;x&#039;&#039;&#039; și&#039;&#039;&#039; y&#039;&#039;&#039; reprezentând un interval &#039;&#039;&#039;[x, y]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
&lt;br /&gt;
Programul va afișa pe ecran &#039;&#039;&#039;T&#039;&#039;&#039; linii. Pe fiecare linie &#039;&#039;&#039;i (i=1..T)&#039;&#039;&#039; se va afla un singur număr natural reprezentând răspunsul la a &#039;&#039;&#039;i&#039;&#039;&#039;-a întrebare.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ n, T ≤ 200 000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;0 ≤ a[i] ≤ 2 000 000 000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;0 ≤ x ≤ y ≤ 2 000 000 000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
 9 7&lt;br /&gt;
 6 1 3 5 3 3 9 20 9&lt;br /&gt;
 4 10&lt;br /&gt;
 0 100&lt;br /&gt;
 0 1&lt;br /&gt;
 500 506&lt;br /&gt;
 3 3&lt;br /&gt;
 10 18&lt;br /&gt;
 3 9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 4&lt;br /&gt;
 9&lt;br /&gt;
 1&lt;br /&gt;
 0&lt;br /&gt;
 3&lt;br /&gt;
 0&lt;br /&gt;
 7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, T, a, intervals):&lt;br /&gt;
    if len(a) != n:&lt;br /&gt;
        return False&lt;br /&gt;
    for x, y in intervals:&lt;br /&gt;
        if x &amp;gt; y:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def count_numbers_in_intervals(n, T, a, intervals):&lt;br /&gt;
    if not validate_input(n, T, a, intervals):&lt;br /&gt;
        return []&lt;br /&gt;
&lt;br /&gt;
    counts = []&lt;br /&gt;
    for x, y in intervals:&lt;br /&gt;
        count = 0&lt;br /&gt;
        for num in a:&lt;br /&gt;
            if x &amp;lt;= num &amp;lt;= y:&lt;br /&gt;
                count += 1&lt;br /&gt;
        counts.append(count)&lt;br /&gt;
&lt;br /&gt;
    return counts&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n, T = map(int, input().split())&lt;br /&gt;
    a = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    intervals = []&lt;br /&gt;
    for i in range(T):&lt;br /&gt;
        x, y = map(int, input().split())&lt;br /&gt;
        intervals.append((x, y))&lt;br /&gt;
&lt;br /&gt;
    counts = count_numbers_in_intervals(n, T, a, intervals)&lt;br /&gt;
&lt;br /&gt;
    for count in counts:&lt;br /&gt;
        print(count)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie== &lt;br /&gt;
Acest program citește întâi valorile n și T de la intrare folosind map(int, input().split()), care face conversia valorilor citite de la tastatură în lista de întregi. Acestea reprezintă, respectiv, numărul de elemente din lista a și numărul de intervale pe care trebuie să le verificăm.&lt;br /&gt;
&lt;br /&gt;
Următoarea linie citește lista a de n elemente de la intrare, folosind list(map(int, input().split())). Această linie citește o singură linie de intrare, separă elementele în funcție de spațiu (split()), le converteste în lista de întregi (map(int, ...)) și creează lista finală (list(...)).&lt;br /&gt;
&lt;br /&gt;
În continuare, linia for i in range(T): iterăm prin fiecare interval și adăugăm intervalele la lista de intervale folosind linia intervals.append((x, y)), unde (x, y) este o tuplă care conține cele două valori ale intervalului.&lt;br /&gt;
&lt;br /&gt;
Apelăm funcția count_numbers_in_intervals cu argumentele necesare și apoi afișăm rezultatele într-un format specificat.&lt;br /&gt;
&lt;br /&gt;
Funcția count_numbers_in_intervals primește numărul de elemente din lista a, numărul de intervale, lista de numere a și o listă de intervale și returnează o listă cu numărul de elemente din fiecare interval.&lt;br /&gt;
&lt;br /&gt;
Funcția validate_input verifică dacă datele de intrare sunt valide și returnează True dacă sunt și False în caz contrar. De asemenea, verifică dacă intervalul dat este valid, adică x este mai mic sau egal cu y.&lt;br /&gt;
&lt;br /&gt;
Pentru a verifica dacă un număr se află într-un interval dat, iterăm prin lista a și verificăm dacă fiecare element este mai mare sau egal cu limita inferioară x și mai mic sau egal cu limita superioară y. Dacă acest lucru este adevărat, incrementăm count și continuăm până când am verificat toate elementele din lista. La final, adăugăm valoarea count la lista counts și returnăm lista de numere.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2014_-_Canguri&amp;diff=6176</id>
		<title>2014 - Canguri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2014_-_Canguri&amp;diff=6176"/>
		<updated>2023-05-07T18:36:26Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Explicatie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
La proba de atletism s-au calificat trei canguri care trebuie să efectueze sărituri pe o pistă de 800 metri.&lt;br /&gt;
Fiecare cangur se aliniază la linia de start, îşi lipeşte pe marsupiu eticheta cu numărul său de concurs iar apoi când se dă stratul efectuează săritură după săritură până trece linia de sosire.&lt;br /&gt;
&lt;br /&gt;
Cunoscând lungimea săriturii fiecărui cangur (exprimată în metri) şi faptul că nu există doi canguri cu sărituri de aceeaşi lungime, scrieți un program care să determine:&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
a) Numărul de concurs al cangurului care ajunge primul la linia de sosire;&lt;br /&gt;
b) Numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Din fişierul de intrare canguri.in se citesc:&lt;br /&gt;
&lt;br /&gt;
*de pe primele trei linii, câte două numere naturale despărțite prin câte un spațiu, ce reprezintă numărul de concurs respectiv lungimea săriturii fiecărui cangur.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
În fişierul canguri.out se va scrie:&lt;br /&gt;
&lt;br /&gt;
*pe prima linie, numărul de concurs al cangurului care trece primul linia de sosire;&lt;br /&gt;
*pe cea de-a doua linie, un număr natural ce reprezintă numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
Numerele scrise pe etichetele de concurs sunt numere naturale cu maximum trei cifre&lt;br /&gt;
pentru determinarea corectă a numărului de concurs se acordă 60% din punctaj; pentru determinarea corectă a numărului de sărituri se acordă 40% din punctaj&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;canguri.in  &#039;&#039;&#039;&lt;br /&gt;
:769 2&lt;br /&gt;
:354 6&lt;br /&gt;
:129 4 &lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;canguri.out &#039;&#039;&#039;&lt;br /&gt;
:354&lt;br /&gt;
:134&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Primul cangur are numărul de concurs &#039;&#039;&#039;769&#039;&#039;&#039; şi lungimea săriturii egală cu &#039;&#039;&#039;2&#039;&#039;&#039; metri.&lt;br /&gt;
Cel de-al doilea cangur are numărul de concurs &#039;&#039;&#039;354&#039;&#039;&#039; şi lungimea săriturii de &#039;&#039;&#039;6&#039;&#039;&#039; metri.&lt;br /&gt;
Cel de-al treilea cangur are numărul de concurs &#039;&#039;&#039;129&#039;&#039;&#039; și lungimea săriturii de &#039;&#039;&#039;4&#039;&#039;&#039; metri.&lt;br /&gt;
Primul va trece linia de sosire cangurul cu numărul de concurs &#039;&#039;&#039;354.&#039;&#039;&#039;&lt;br /&gt;
El va efectua &#039;&#039;&#039;134&#039;&#039;&#039; de sărituri pentru a trece linia de sosire.&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, data):&lt;br /&gt;
    if n != 3:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if len(data[i]) != 2:&lt;br /&gt;
            return False&lt;br /&gt;
        if not data[i][0].isdigit() or not data[i][1].isdigit():&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citim datele de intrare din fisierul &amp;quot;canguri.in&amp;quot;&lt;br /&gt;
    with open(&amp;quot;canguri.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
        n = 3&lt;br /&gt;
        data = [tuple(line.strip().split()) for line in f.readlines()]&lt;br /&gt;
&lt;br /&gt;
    # Validam datele de intrare&lt;br /&gt;
    if not validate_input(n, data):&lt;br /&gt;
        print(&amp;quot;Date de intrare invalide!&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    # Sortam lista de canguri in functie de lungimea sariturii&lt;br /&gt;
    sorted_canguri = sorted(data, key=lambda x: int(x[1]))&lt;br /&gt;
&lt;br /&gt;
    # Aflam numarul de concurs al cangurului care trece primul linia de sosire&lt;br /&gt;
    numar_cangur = sorted_canguri[0][0]&lt;br /&gt;
    print(numar_cangur)&lt;br /&gt;
&lt;br /&gt;
    # Aflam numarul de sarituri efectuate de cangurul care a trecut primul linia de sosire&lt;br /&gt;
    nr_sarituri = 800 // int(sorted_canguri[0][1])&lt;br /&gt;
    print(nr_sarituri)&lt;br /&gt;
&lt;br /&gt;
    # Scriem rezultatele in fisierul &amp;quot;canguri.out&amp;quot;&lt;br /&gt;
    with open(&amp;quot;canguri.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
        f.write(str(numar_cangur) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        f.write(str(nr_sarituri) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Pentru validarea datelor de intrare, am definit funcția validate_input, care primește numărul de linii n și datele propriu-zise data și verifică dacă avem exact 3 linii de date, iar fiecare linie conține două numere naturale separate prin spațiu.&lt;br /&gt;
&lt;br /&gt;
În funcția main, citim datele de intrare din fișierul &amp;quot;canguri.in&amp;quot; și le validăm folosind funcția validate_input. Apoi, sortăm lista de canguri în funcție de lungimea săriturii&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2014_-_Canguri&amp;diff=6175</id>
		<title>2014 - Canguri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2014_-_Canguri&amp;diff=6175"/>
		<updated>2023-05-07T18:35:44Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
La proba de atletism s-au calificat trei canguri care trebuie să efectueze sărituri pe o pistă de 800 metri.&lt;br /&gt;
Fiecare cangur se aliniază la linia de start, îşi lipeşte pe marsupiu eticheta cu numărul său de concurs iar apoi când se dă stratul efectuează săritură după săritură până trece linia de sosire.&lt;br /&gt;
&lt;br /&gt;
Cunoscând lungimea săriturii fiecărui cangur (exprimată în metri) şi faptul că nu există doi canguri cu sărituri de aceeaşi lungime, scrieți un program care să determine:&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
a) Numărul de concurs al cangurului care ajunge primul la linia de sosire;&lt;br /&gt;
b) Numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Din fişierul de intrare canguri.in se citesc:&lt;br /&gt;
&lt;br /&gt;
*de pe primele trei linii, câte două numere naturale despărțite prin câte un spațiu, ce reprezintă numărul de concurs respectiv lungimea săriturii fiecărui cangur.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
În fişierul canguri.out se va scrie:&lt;br /&gt;
&lt;br /&gt;
*pe prima linie, numărul de concurs al cangurului care trece primul linia de sosire;&lt;br /&gt;
*pe cea de-a doua linie, un număr natural ce reprezintă numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
Numerele scrise pe etichetele de concurs sunt numere naturale cu maximum trei cifre&lt;br /&gt;
pentru determinarea corectă a numărului de concurs se acordă 60% din punctaj; pentru determinarea corectă a numărului de sărituri se acordă 40% din punctaj&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;canguri.in  &#039;&#039;&#039;&lt;br /&gt;
:769 2&lt;br /&gt;
:354 6&lt;br /&gt;
:129 4 &lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;canguri.out &#039;&#039;&#039;&lt;br /&gt;
:354&lt;br /&gt;
:134&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Primul cangur are numărul de concurs &#039;&#039;&#039;769&#039;&#039;&#039; şi lungimea săriturii egală cu &#039;&#039;&#039;2&#039;&#039;&#039; metri.&lt;br /&gt;
Cel de-al doilea cangur are numărul de concurs &#039;&#039;&#039;354&#039;&#039;&#039; şi lungimea săriturii de &#039;&#039;&#039;6&#039;&#039;&#039; metri.&lt;br /&gt;
Cel de-al treilea cangur are numărul de concurs &#039;&#039;&#039;129&#039;&#039;&#039; și lungimea săriturii de &#039;&#039;&#039;4&#039;&#039;&#039; metri.&lt;br /&gt;
Primul va trece linia de sosire cangurul cu numărul de concurs &#039;&#039;&#039;354.&#039;&#039;&#039;&lt;br /&gt;
El va efectua &#039;&#039;&#039;134&#039;&#039;&#039; de sărituri pentru a trece linia de sosire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, data):&lt;br /&gt;
    if n != 3:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if len(data[i]) != 2:&lt;br /&gt;
            return False&lt;br /&gt;
        if not data[i][0].isdigit() or not data[i][1].isdigit():&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citim datele de intrare din fisierul &amp;quot;canguri.in&amp;quot;&lt;br /&gt;
    with open(&amp;quot;canguri.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
        n = 3&lt;br /&gt;
        data = [tuple(line.strip().split()) for line in f.readlines()]&lt;br /&gt;
&lt;br /&gt;
    # Validam datele de intrare&lt;br /&gt;
    if not validate_input(n, data):&lt;br /&gt;
        print(&amp;quot;Date de intrare invalide!&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    # Sortam lista de canguri in functie de lungimea sariturii&lt;br /&gt;
    sorted_canguri = sorted(data, key=lambda x: int(x[1]))&lt;br /&gt;
&lt;br /&gt;
    # Aflam numarul de concurs al cangurului care trece primul linia de sosire&lt;br /&gt;
    numar_cangur = sorted_canguri[0][0]&lt;br /&gt;
    print(numar_cangur)&lt;br /&gt;
&lt;br /&gt;
    # Aflam numarul de sarituri efectuate de cangurul care a trecut primul linia de sosire&lt;br /&gt;
    nr_sarituri = 800 // int(sorted_canguri[0][1])&lt;br /&gt;
    print(nr_sarituri)&lt;br /&gt;
&lt;br /&gt;
    # Scriem rezultatele in fisierul &amp;quot;canguri.out&amp;quot;&lt;br /&gt;
    with open(&amp;quot;canguri.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
        f.write(str(numar_cangur) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        f.write(str(nr_sarituri) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Pentru validarea datelor de intrare, am definit funcția validate_input, care primește numărul de linii n și datele propriu-zise data și verifică dacă avem exact 3 linii de date, iar fiecare linie conține două numere naturale separate prin spațiu.&lt;br /&gt;
&lt;br /&gt;
În funcția main, citim datele de intrare din fișierul &amp;quot;canguri.in&amp;quot; și le validăm folosind funcția validate_input. Apoi, sortăm lista de canguri în funcție de lungimea săriturii&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2014_-_Canguri&amp;diff=6174</id>
		<title>2014 - Canguri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2014_-_Canguri&amp;diff=6174"/>
		<updated>2023-05-07T18:33:50Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
La proba de atletism s-au calificat trei canguri care trebuie să efectueze sărituri pe o pistă de 800 metri.&lt;br /&gt;
Fiecare cangur se aliniază la linia de start, îşi lipeşte pe marsupiu eticheta cu numărul său de concurs iar apoi când se dă stratul efectuează săritură după săritură până trece linia de sosire.&lt;br /&gt;
&lt;br /&gt;
Cunoscând lungimea săriturii fiecărui cangur (exprimată în metri) şi faptul că nu există doi canguri cu sărituri de aceeaşi lungime, scrieți un program care să determine:&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
a) Numărul de concurs al cangurului care ajunge primul la linia de sosire;&lt;br /&gt;
b) Numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Din fişierul de intrare canguri.in se citesc:&lt;br /&gt;
&lt;br /&gt;
*de pe primele trei linii, câte două numere naturale despărțite prin câte un spațiu, ce reprezintă numărul de concurs respectiv lungimea săriturii fiecărui cangur.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
În fişierul canguri.out se va scrie:&lt;br /&gt;
&lt;br /&gt;
*pe prima linie, numărul de concurs al cangurului care trece primul linia de sosire;&lt;br /&gt;
*pe cea de-a doua linie, un număr natural ce reprezintă numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
Numerele scrise pe etichetele de concurs sunt numere naturale cu maximum trei cifre&lt;br /&gt;
pentru determinarea corectă a numărului de concurs se acordă 60% din punctaj; pentru determinarea corectă a numărului de sărituri se acordă 40% din punctaj&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;canguri.in  &#039;&#039;&#039;&lt;br /&gt;
 769 2&lt;br /&gt;
 354 6&lt;br /&gt;
 129 4 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;canguri.out &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 354&lt;br /&gt;
 134&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Primul cangur are numărul de concurs &#039;&#039;&#039;769&#039;&#039;&#039; şi lungimea săriturii egală cu &#039;&#039;&#039;2&#039;&#039;&#039; metri.&lt;br /&gt;
Cel de-al doilea cangur are numărul de concurs &#039;&#039;&#039;354&#039;&#039;&#039; şi lungimea săriturii de &#039;&#039;&#039;6&#039;&#039;&#039; metri.&lt;br /&gt;
Cel de-al treilea cangur are numărul de concurs &#039;&#039;&#039;129&#039;&#039;&#039; și lungimea săriturii de &#039;&#039;&#039;4&#039;&#039;&#039; metri.&lt;br /&gt;
Primul va trece linia de sosire cangurul cu numărul de concurs &#039;&#039;&#039;354.&#039;&#039;&#039;&lt;br /&gt;
El va efectua &#039;&#039;&#039;134&#039;&#039;&#039; de sărituri pentru a trece linia de sosire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, data):&lt;br /&gt;
    if n != 3:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if len(data[i]) != 2:&lt;br /&gt;
            return False&lt;br /&gt;
        if not data[i][0].isdigit() or not data[i][1].isdigit():&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citim datele de intrare din fisierul &amp;quot;canguri.in&amp;quot;&lt;br /&gt;
    with open(&amp;quot;canguri.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
        n = 3&lt;br /&gt;
        data = [tuple(line.strip().split()) for line in f.readlines()]&lt;br /&gt;
&lt;br /&gt;
    # Validam datele de intrare&lt;br /&gt;
    if not validate_input(n, data):&lt;br /&gt;
        print(&amp;quot;Date de intrare invalide!&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    # Sortam lista de canguri in functie de lungimea sariturii&lt;br /&gt;
    sorted_canguri = sorted(data, key=lambda x: int(x[1]))&lt;br /&gt;
&lt;br /&gt;
    # Aflam numarul de concurs al cangurului care trece primul linia de sosire&lt;br /&gt;
    numar_cangur = sorted_canguri[0][0]&lt;br /&gt;
    print(numar_cangur)&lt;br /&gt;
&lt;br /&gt;
    # Aflam numarul de sarituri efectuate de cangurul care a trecut primul linia de sosire&lt;br /&gt;
    nr_sarituri = 800 // int(sorted_canguri[0][1])&lt;br /&gt;
    print(nr_sarituri)&lt;br /&gt;
&lt;br /&gt;
    # Scriem rezultatele in fisierul &amp;quot;canguri.out&amp;quot;&lt;br /&gt;
    with open(&amp;quot;canguri.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
        f.write(str(numar_cangur) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        f.write(str(nr_sarituri) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Pentru validarea datelor de intrare, am definit funcția validate_input, care primește numărul de linii n și datele propriu-zise data și verifică dacă avem exact 3 linii de date, iar fiecare linie conține două numere naturale separate prin spațiu.&lt;br /&gt;
&lt;br /&gt;
În funcția main, citim datele de intrare din fișierul &amp;quot;canguri.in&amp;quot; și le validăm folosind funcția validate_input. Apoi, sortăm lista de canguri în funcție de lungimea săriturii&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2014_-_Canguri&amp;diff=6173</id>
		<title>2014 - Canguri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2014_-_Canguri&amp;diff=6173"/>
		<updated>2023-05-07T18:32:00Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Enunt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
La proba de atletism s-au calificat trei canguri care trebuie să efectueze sărituri pe o pistă de 800 metri.&lt;br /&gt;
Fiecare cangur se aliniază la linia de start, îşi lipeşte pe marsupiu eticheta cu numărul său de concurs iar apoi când se dă stratul efectuează săritură după săritură până trece linia de sosire.&lt;br /&gt;
&lt;br /&gt;
Cunoscând lungimea săriturii fiecărui cangur (exprimată în metri) şi faptul că nu există doi canguri cu sărituri de aceeaşi lungime, scrieți un program care să determine:&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
a) Numărul de concurs al cangurului care ajunge primul la linia de sosire;&lt;br /&gt;
b) Numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Din fişierul de intrare canguri.in se citesc:&lt;br /&gt;
&lt;br /&gt;
*de pe primele trei linii, câte două numere naturale despărțite prin câte un spațiu, ce reprezintă numărul de concurs respectiv lungimea săriturii fiecărui cangur.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
&lt;br /&gt;
În fişierul canguri.out se va scrie:&lt;br /&gt;
&lt;br /&gt;
*pe prima linie, numărul de concurs al cangurului care trece primul linia de sosire;&lt;br /&gt;
*pe cea de-a doua linie, un număr natural ce reprezintă numărul săriturilor efectuate de cangurul care a trecut primul linia de sosire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
Numerele scrise pe etichetele de concurs sunt numere naturale cu maximum trei cifre&lt;br /&gt;
pentru determinarea corectă a numărului de concurs se acordă 60% din punctaj; pentru determinarea corectă a numărului de sărituri se acordă 40% din punctaj&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;canguri.in  &#039;&#039;&#039;&lt;br /&gt;
 769 2&lt;br /&gt;
 354 6&lt;br /&gt;
 129 4 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;canguri.out &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 354&lt;br /&gt;
 134&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Primul cangur are numărul de concurs &#039;&#039;&#039;769&#039;&#039;&#039; şi lungimea săriturii egală cu &#039;&#039;&#039;2&#039;&#039;&#039; metri.&lt;br /&gt;
Cel de-al doilea cangur are numărul de concurs &#039;&#039;&#039;354&#039;&#039;&#039; şi lungimea săriturii de &#039;&#039;&#039;6&#039;&#039;&#039; metri.&lt;br /&gt;
Cel de-al treilea cangur are numărul de concurs &#039;&#039;&#039;129&#039;&#039;&#039; și lungimea săriturii de &#039;&#039;&#039;4&#039;&#039;&#039; metri.&lt;br /&gt;
Primul va trece linia de sosire cangurul cu numărul de concurs &#039;&#039;&#039;354.&#039;&#039;&#039;&lt;br /&gt;
El va efectua &#039;&#039;&#039;134&#039;&#039;&#039; de sărituri pentru a trece linia de sosire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, data):&lt;br /&gt;
    if n != 3:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if len(data[i]) != 2:&lt;br /&gt;
            return False&lt;br /&gt;
        if not data[i][0].isdigit() or not data[i][1].isdigit():&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citim datele de intrare din fisierul &amp;quot;canguri.in&amp;quot;&lt;br /&gt;
    with open(&amp;quot;canguri.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
        n = 3&lt;br /&gt;
        data = [tuple(line.strip().split()) for line in f.readlines()]&lt;br /&gt;
&lt;br /&gt;
    # Validam datele de intrare&lt;br /&gt;
    if not validate_input(n, data):&lt;br /&gt;
        print(&amp;quot;Date de intrare invalide!&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    # Sortam lista de canguri in functie de lungimea sariturii&lt;br /&gt;
    sorted_canguri = sorted(data, key=lambda x: int(x[1]))&lt;br /&gt;
&lt;br /&gt;
    # Aflam numarul de concurs al cangurului care trece primul linia de sosire&lt;br /&gt;
    numar_cangur = sorted_canguri[0][0]&lt;br /&gt;
    print(numar_cangur)&lt;br /&gt;
&lt;br /&gt;
    # Aflam numarul de sarituri efectuate de cangurul care a trecut primul linia de sosire&lt;br /&gt;
    nr_sarituri = 800 // int(sorted_canguri[0][1])&lt;br /&gt;
    print(nr_sarituri)&lt;br /&gt;
&lt;br /&gt;
    # Scriem rezultatele in fisierul &amp;quot;canguri.out&amp;quot;&lt;br /&gt;
    with open(&amp;quot;canguri.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
        f.write(str(numar_cangur) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        f.write(str(nr_sarituri) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Pentru validarea datelor de intrare, am definit funcția validate_input, care primește numărul de linii n și datele propriu-zise data și verifică dacă avem exact 3 linii de date, iar fiecare linie conține două numere naturale separate prin spațiu.&lt;br /&gt;
&lt;br /&gt;
În funcția main, citim datele de intrare din fișierul &amp;quot;canguri.in&amp;quot; și le validăm folosind funcția validate_input. Apoi, sortăm lista de canguri în funcție de lungimea săriturii&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1470_-_Parcare&amp;diff=6171</id>
		<title>1470 - Parcare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1470_-_Parcare&amp;diff=6171"/>
		<updated>2023-05-07T18:23:19Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Explicatie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
În parcările din Iași, intrarea în parcare este permisă dacă șoferul care dorește să parcheze solicită acest lucru.&lt;br /&gt;
&lt;br /&gt;
Solicitarea se face prin apăsarea unui buton la automatul aflat la intrarea în parcare, acțiune care are ca efect eliberarea unui tichet de parcare și deschiderea barierei. Pe tichet sunt trecute data și ora intrării în parcare.&lt;br /&gt;
&lt;br /&gt;
La plecare, șoferul scanează tichetul la automatul de plată. În urma scanării automatul calculează şi afișează suma de plată. Calculul sumei se face astfel:&lt;br /&gt;
&lt;br /&gt;
*se citește de la ceasul automatului data și ora plecării&lt;br /&gt;
*se calculează diferența de timp dintre ora plecării și ora intrării în parcare&lt;br /&gt;
*diferența calculată se rotunjește la număr întreg de ore, în sus&lt;br /&gt;
*se înmulțește timpul exprimat în ore cu tariful orar&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Cunoscându-se data și ora intrării în parcare, data și ora plecării din parcare și tariful orar, să se determine timpul cât a stat mașina în parcare și suma de plată.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;parcare.in&#039;&#039;&#039; conţine pe prima linie data și ora intrării în parcare, separate printr-un spațiu, sub forma &#039;&#039;&#039;zz ll hh mm&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Pe linia a doua a fişierului de intrare se găsesc data și ora plecării din parcare, separate printr-un spațiu, sub forma&#039;&#039;&#039; zz ll hh mm&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Linia a treia conţine un număr natural t reprezentând tariful orar exprimat în lei.&lt;br /&gt;
&lt;br /&gt;
Pe linia a patra a fișierului de intrare se găsește una dintre valorile 1 sau 2 reprezentând cerinţa: 1, dacă se cere determinarea timpului cât a stat mașina în parcare, timp exprimat în minute, respectiv 2, dacă se cere determinarea sumei de plată pentru parcare.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot; Fişierul de ieşire &#039;&#039;&#039;parcare.out&#039;&#039;&#039; conţine pe prima linie o valoarea naturală reprezentând timpul cât mașina a stat în parcare, exprimat în minute, dacă cerinţa a fost&#039;&#039;&#039; 1&#039;&#039;&#039;, respectiv suma de plată, dacă cerinţa a fost &#039;&#039;&#039;2&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*Mașina stă în parcare cel puţin &#039;&#039;&#039;1&#039;&#039;&#039; minut dar nu poate sta mai mult de &#039;&#039;&#039;7&#039;&#039;&#039; zile.&lt;br /&gt;
*Dacă timpul de staţionare nu depăşeşte &#039;&#039;&#039;15&#039;&#039;&#039; minute, nu se percepe taxă.&lt;br /&gt;
*Cele două date sunt din același an, care nu este bisect.&lt;br /&gt;
*Minutul de plecare din parcare nu se contorizează.&lt;br /&gt;
*Minutele unei ore sunt numerotate de la &#039;&#039;&#039;0 &#039;&#039;&#039;la &#039;&#039;&#039;59&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;1 &amp;lt;= t &amp;lt;= 100&#039;&#039;&#039;&lt;br /&gt;
*Pentru cerinţa 1 se acordă 50% din punctaj, iar pentru cerinţa 2 se acordă încă 50% din punctaj.&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;parcare.in&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
30 01 17 33&lt;br /&gt;
30 01 21 01&lt;br /&gt;
3&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;parcare.out&#039;&#039;&#039;&lt;br /&gt;
208&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Intrarea în parcare s-a făcut în data de 30 ianuarie ora 17:33. Plecarea s-a făcut în aceeași zi la ora 21:01. Deci timpul cât mașina a stat în parcare este 27 + 3*60 + 1 = 208 minute&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;&#039;&#039;&#039;parcare.in&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
30 01 17 33&lt;br /&gt;
30 01 21 01&lt;br /&gt;
3&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;parcare.out&#039;&#039;&#039;&lt;br /&gt;
12&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Tariful orar este 3 lei/oră. Se deduce că 208 minute = 3 ore și 28 minute, deci se plătesc 4 ore, 4 * 3 = 12.&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(start_date, start_hour, end_date, end_hour, tariff):&lt;br /&gt;
    # Verificam daca datele sunt valide&lt;br /&gt;
    # ...&lt;br /&gt;
&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_parking_time(start_date, start_hour, end_date, end_hour):&lt;br /&gt;
    # Calculam timpul petrecut in parcare&lt;br /&gt;
    # ...&lt;br /&gt;
&lt;br /&gt;
    return parking_time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_parking_fee(parking_time, tariff):&lt;br /&gt;
    # Calculam suma de plata in functie de timpul petrecut in parcare si tariful orar&lt;br /&gt;
    # ...&lt;br /&gt;
&lt;br /&gt;
    return parking_fee&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # Citim datele de intrare din fisierul parcare.in&lt;br /&gt;
    with open(&#039;parcare.in&#039;) as f:&lt;br /&gt;
        start_date, start_hour = map(int, f.readline().split())&lt;br /&gt;
        end_date, end_hour = map(int, f.readline().split())&lt;br /&gt;
        tariff = int(f.readline())&lt;br /&gt;
        request = int(f.readline())&lt;br /&gt;
&lt;br /&gt;
    # Validam datele de intrare&lt;br /&gt;
    if not validate_input(start_date, start_hour, end_date, end_hour, tariff):&lt;br /&gt;
        print(&#039;Datele de intrare sunt invalide.&#039;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    # Calculam timpul petrecut in parcare si suma de plata&lt;br /&gt;
    parking_time = calculate_parking_time(start_date, start_hour, end_date, end_hour)&lt;br /&gt;
    parking_fee = calculate_parking_fee(parking_time, tariff)&lt;br /&gt;
&lt;br /&gt;
    # Scriem rezultatele in fisierul parcare.out&lt;br /&gt;
    with open(&#039;parcare.out&#039;, &#039;w&#039;) as f:&lt;br /&gt;
        if request == 1:&lt;br /&gt;
            f.write(str(parking_time) + &#039;\n&#039;)&lt;br /&gt;
        else:&lt;br /&gt;
            f.write(str(parking_fee) + &#039;\n&#039;)&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>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3644_-_Joc12&amp;diff=6169</id>
		<title>3644 - Joc12</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3644_-_Joc12&amp;diff=6169"/>
		<updated>2023-05-07T18:16:58Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Rezolvare ver. 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
Ioana și Maria tocmai au învățat la matematică despre multiplii unui număr natural. Pentru a exersa lucrul cu noua noțiune, își propun să joace următorul joc: fiecare își alege câte un număr natural nenul și pentru câte un interval închis dat (la intervalele închise capetele fac parte din interval), calculează câți multipli are numărul ales în acel interval. Câștigă cea care a ales numărul care are mai mulți multipli în intervalul primit, sau este egalitate în cazul în care numărul multiplilor este acelaşi.&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Cunoscând numerele alese de cele două fete precum și numerele care determină intervalele date, să se determine cine câștigă jocul și care este numărul care conduce la câștigarea jocului.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
De la tastatură se citesc șase valori: &#039;&#039;&#039;x a b y c d&#039;&#039;&#039;, care reprezintă, în ordine, numărul ales de Ioana și capetele intervalului primit de aceasta, numărul ales de Maria și capetele intervalului primit de ea.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Pe ecran se va afișa numele fetei care câștigă și o valoare P ce reprezintă numărul care conduce la câștigarea jocului, separate printr-un spațiu. În caz de egalitate se va afișa &#039;&#039;&#039;Egalitate&#039;&#039;&#039; urmat de un spaţiu şi de numărul egal al multiplilor.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ x, y ≤ 1.000.000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a, b ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ c, d ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:7&lt;br /&gt;
:9 &lt;br /&gt;
:30&lt;br /&gt;
:9&lt;br /&gt;
:60&lt;br /&gt;
:20&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:Maria 4&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7&#039;&#039;&#039; are în intervalul &#039;&#039;&#039;[9, 30]&#039;&#039;&#039; trei multipli &#039;&#039;&#039;{14, 21, 28}&#039;&#039;&#039;. &#039;&#039;&#039;9 &#039;&#039;&#039;are în intervalul &#039;&#039;&#039;[20, 60]&#039;&#039;&#039; patru multipli &#039;&#039;&#039;{27, 36, 45, 54}.&#039;&#039;&#039; Prin urmare numărul ales de Maria este cel câștigător, având &#039;&#039;&#039;4&#039;&#039;&#039; multipli în intervalul dat.&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(x, a, b, y, c, d):&lt;br /&gt;
    if not(1 &amp;lt;= x &amp;lt;= 1000000 and 1 &amp;lt;= y &amp;lt;= 1000000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not(1 &amp;lt;= a &amp;lt;= 1000000000 and 1 &amp;lt;= b &amp;lt;= 1000000000 and 1 &amp;lt;= c &amp;lt;= 1000000000 and 1 &amp;lt;= d &amp;lt;= 1000000000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not(b &amp;lt;= a or d &amp;lt;= c):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculate_multiples(n, a, b):&lt;br /&gt;
    count = 0&lt;br /&gt;
    for i in range(a, b+1):&lt;br /&gt;
        if i % n == 0:&lt;br /&gt;
            count += 1&lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def find_winner(x, a, b, y, c, d):&lt;br /&gt;
    if calculate_multiples(x, a, b) &amp;gt; calculate_multiples(y, c, d):&lt;br /&gt;
        return &amp;quot;Ioana&amp;quot;, x&lt;br /&gt;
    elif calculate_multiples(x, a, b) &amp;lt; calculate_multiples(y, c, d):&lt;br /&gt;
        return &amp;quot;Maria&amp;quot;, y&lt;br /&gt;
    else:&lt;br /&gt;
        return &amp;quot;Egalitate&amp;quot;, calculate_multiples(x, a, b)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    x = int(input())&lt;br /&gt;
    a = int(input())&lt;br /&gt;
    b = int(input())&lt;br /&gt;
    y = int(input())&lt;br /&gt;
    c = int(input())&lt;br /&gt;
    d = int(input())&lt;br /&gt;
    if validate_input(x, a, b, y, c, d):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        winner, num = find_winner(x, a, b, y, c, d)&lt;br /&gt;
        print(winner, num)&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;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, am introdus numărul 7 pentru Ioana, intervalul [9, 30], numărul 30 pentru Maria și intervalul [20, 60]. Funcția de validare verifică dacă valorile sunt valide, ceea ce este cazul aici. Apoi, funcția find_winner calculează numărul de multipli pentru fiecare număr în intervalul dat și compară rezultatele pentru a determina câștigătorul. În cazul nostru, Maria are mai mulți multipli, deci câștigă.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3644_-_Joc12&amp;diff=6167</id>
		<title>3644 - Joc12</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3644_-_Joc12&amp;diff=6167"/>
		<updated>2023-05-07T18:14:57Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Explicatie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
Ioana și Maria tocmai au învățat la matematică despre multiplii unui număr natural. Pentru a exersa lucrul cu noua noțiune, își propun să joace următorul joc: fiecare își alege câte un număr natural nenul și pentru câte un interval închis dat (la intervalele închise capetele fac parte din interval), calculează câți multipli are numărul ales în acel interval. Câștigă cea care a ales numărul care are mai mulți multipli în intervalul primit, sau este egalitate în cazul în care numărul multiplilor este acelaşi.&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Cunoscând numerele alese de cele două fete precum și numerele care determină intervalele date, să se determine cine câștigă jocul și care este numărul care conduce la câștigarea jocului.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
De la tastatură se citesc șase valori: &#039;&#039;&#039;x a b y c d&#039;&#039;&#039;, care reprezintă, în ordine, numărul ales de Ioana și capetele intervalului primit de aceasta, numărul ales de Maria și capetele intervalului primit de ea.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Pe ecran se va afișa numele fetei care câștigă și o valoare P ce reprezintă numărul care conduce la câștigarea jocului, separate printr-un spațiu. În caz de egalitate se va afișa &#039;&#039;&#039;Egalitate&#039;&#039;&#039; urmat de un spaţiu şi de numărul egal al multiplilor.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ x, y ≤ 1.000.000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a, b ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ c, d ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:7&lt;br /&gt;
:9 &lt;br /&gt;
:30&lt;br /&gt;
:9&lt;br /&gt;
:60&lt;br /&gt;
:20&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:Maria 4&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7&#039;&#039;&#039; are în intervalul &#039;&#039;&#039;[9, 30]&#039;&#039;&#039; trei multipli &#039;&#039;&#039;{14, 21, 28}&#039;&#039;&#039;. &#039;&#039;&#039;9 &#039;&#039;&#039;are în intervalul &#039;&#039;&#039;[20, 60]&#039;&#039;&#039; patru multipli &#039;&#039;&#039;{27, 36, 45, 54}.&#039;&#039;&#039; Prin urmare numărul ales de Maria este cel câștigător, având &#039;&#039;&#039;4&#039;&#039;&#039; multipli în intervalul dat.&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(x, a, b, y, c, d):&lt;br /&gt;
    if not(1 &amp;lt;= x &amp;lt;= 1000000 and 1 &amp;lt;= y &amp;lt;= 1000000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not(1 &amp;lt;= a &amp;lt;= 1000000000 and 1 &amp;lt;= b &amp;lt;= 1000000000 and 1 &amp;lt;= c &amp;lt;= 1000000000 and 1 &amp;lt;= d &amp;lt;= 1000000000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not(b &amp;lt;= a or d &amp;lt;= c):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def calculate_multiples(n, a, b):&lt;br /&gt;
    count = 0&lt;br /&gt;
    for i in range(a, b+1):&lt;br /&gt;
        if i % n == 0:&lt;br /&gt;
            count += 1&lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
def find_winner(x, a, b, y, c, d):&lt;br /&gt;
    if calculate_multiples(x, a, b) &amp;gt; calculate_multiples(y, c, d):&lt;br /&gt;
        return &amp;quot;Ioana&amp;quot;, x&lt;br /&gt;
    elif calculate_multiples(x, a, b) &amp;lt; calculate_multiples(y, c, d):&lt;br /&gt;
        return &amp;quot;Maria&amp;quot;, y&lt;br /&gt;
    else:&lt;br /&gt;
        return &amp;quot;Egalitate&amp;quot;, calculate_multiples(x, a, b)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    x = int(input())&lt;br /&gt;
    a = int(input())&lt;br /&gt;
    b = int(input())&lt;br /&gt;
    y = int(input())&lt;br /&gt;
    c = int(input())&lt;br /&gt;
    d = int(input())&lt;br /&gt;
&lt;br /&gt;
    if validate_input(x, a, b, y, c, d):&lt;br /&gt;
        winner, num = find_winner(x, a, b, y, c, d)&lt;br /&gt;
        print(winner, num)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Input invalid&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, am introdus numărul 7 pentru Ioana, intervalul [9, 30], numărul 30 pentru Maria și intervalul [20, 60]. Funcția de validare verifică dacă valorile sunt valide, ceea ce este cazul aici. Apoi, funcția find_winner calculează numărul de multipli pentru fiecare număr în intervalul dat și compară rezultatele pentru a determina câștigătorul. În cazul nostru, Maria are mai mulți multipli, deci câștigă.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3644_-_Joc12&amp;diff=6166</id>
		<title>3644 - Joc12</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3644_-_Joc12&amp;diff=6166"/>
		<updated>2023-05-07T18:14:49Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
Ioana și Maria tocmai au învățat la matematică despre multiplii unui număr natural. Pentru a exersa lucrul cu noua noțiune, își propun să joace următorul joc: fiecare își alege câte un număr natural nenul și pentru câte un interval închis dat (la intervalele închise capetele fac parte din interval), calculează câți multipli are numărul ales în acel interval. Câștigă cea care a ales numărul care are mai mulți multipli în intervalul primit, sau este egalitate în cazul în care numărul multiplilor este acelaşi.&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Cunoscând numerele alese de cele două fete precum și numerele care determină intervalele date, să se determine cine câștigă jocul și care este numărul care conduce la câștigarea jocului.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
De la tastatură se citesc șase valori: &#039;&#039;&#039;x a b y c d&#039;&#039;&#039;, care reprezintă, în ordine, numărul ales de Ioana și capetele intervalului primit de aceasta, numărul ales de Maria și capetele intervalului primit de ea.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Pe ecran se va afișa numele fetei care câștigă și o valoare P ce reprezintă numărul care conduce la câștigarea jocului, separate printr-un spațiu. În caz de egalitate se va afișa &#039;&#039;&#039;Egalitate&#039;&#039;&#039; urmat de un spaţiu şi de numărul egal al multiplilor.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ x, y ≤ 1.000.000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a, b ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ c, d ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
:7&lt;br /&gt;
:9 &lt;br /&gt;
:30&lt;br /&gt;
:9&lt;br /&gt;
:60&lt;br /&gt;
:20&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
:Maria 4&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7&#039;&#039;&#039; are în intervalul &#039;&#039;&#039;[9, 30]&#039;&#039;&#039; trei multipli &#039;&#039;&#039;{14, 21, 28}&#039;&#039;&#039;. &#039;&#039;&#039;9 &#039;&#039;&#039;are în intervalul &#039;&#039;&#039;[20, 60]&#039;&#039;&#039; patru multipli &#039;&#039;&#039;{27, 36, 45, 54}.&#039;&#039;&#039; Prin urmare numărul ales de Maria este cel câștigător, având &#039;&#039;&#039;4&#039;&#039;&#039; multipli în intervalul dat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(x, a, b, y, c, d):&lt;br /&gt;
    if not(1 &amp;lt;= x &amp;lt;= 1000000 and 1 &amp;lt;= y &amp;lt;= 1000000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not(1 &amp;lt;= a &amp;lt;= 1000000000 and 1 &amp;lt;= b &amp;lt;= 1000000000 and 1 &amp;lt;= c &amp;lt;= 1000000000 and 1 &amp;lt;= d &amp;lt;= 1000000000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not(b &amp;lt;= a or d &amp;lt;= c):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def calculate_multiples(n, a, b):&lt;br /&gt;
    count = 0&lt;br /&gt;
    for i in range(a, b+1):&lt;br /&gt;
        if i % n == 0:&lt;br /&gt;
            count += 1&lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
def find_winner(x, a, b, y, c, d):&lt;br /&gt;
    if calculate_multiples(x, a, b) &amp;gt; calculate_multiples(y, c, d):&lt;br /&gt;
        return &amp;quot;Ioana&amp;quot;, x&lt;br /&gt;
    elif calculate_multiples(x, a, b) &amp;lt; calculate_multiples(y, c, d):&lt;br /&gt;
        return &amp;quot;Maria&amp;quot;, y&lt;br /&gt;
    else:&lt;br /&gt;
        return &amp;quot;Egalitate&amp;quot;, calculate_multiples(x, a, b)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    x = int(input())&lt;br /&gt;
    a = int(input())&lt;br /&gt;
    b = int(input())&lt;br /&gt;
    y = int(input())&lt;br /&gt;
    c = int(input())&lt;br /&gt;
    d = int(input())&lt;br /&gt;
&lt;br /&gt;
    if validate_input(x, a, b, y, c, d):&lt;br /&gt;
        winner, num = find_winner(x, a, b, y, c, d)&lt;br /&gt;
        print(winner, num)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Input invalid&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, am introdus numărul 7 pentru Ioana, intervalul [9, 30], numărul 30 pentru Maria și intervalul [20, 60]. Funcția de validare verifică dacă valorile sunt valide, ceea ce este cazul aici. Apoi, funcția find_winner calculează numărul de multipli pentru fiecare număr în intervalul dat și compară rezultatele pentru a determina câștigătorul. În cazul nostru, Maria are mai mulți multipli, deci câștigă.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3644_-_Joc12&amp;diff=6165</id>
		<title>3644 - Joc12</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3644_-_Joc12&amp;diff=6165"/>
		<updated>2023-05-07T18:14:22Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Date de ieșire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
Ioana și Maria tocmai au învățat la matematică despre multiplii unui număr natural. Pentru a exersa lucrul cu noua noțiune, își propun să joace următorul joc: fiecare își alege câte un număr natural nenul și pentru câte un interval închis dat (la intervalele închise capetele fac parte din interval), calculează câți multipli are numărul ales în acel interval. Câștigă cea care a ales numărul care are mai mulți multipli în intervalul primit, sau este egalitate în cazul în care numărul multiplilor este acelaşi.&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Cunoscând numerele alese de cele două fete precum și numerele care determină intervalele date, să se determine cine câștigă jocul și care este numărul care conduce la câștigarea jocului.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
De la tastatură se citesc șase valori: &#039;&#039;&#039;x a b y c d&#039;&#039;&#039;, care reprezintă, în ordine, numărul ales de Ioana și capetele intervalului primit de aceasta, numărul ales de Maria și capetele intervalului primit de ea.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Pe ecran se va afișa numele fetei care câștigă și o valoare P ce reprezintă numărul care conduce la câștigarea jocului, separate printr-un spațiu. În caz de egalitate se va afișa &#039;&#039;&#039;Egalitate&#039;&#039;&#039; urmat de un spaţiu şi de numărul egal al multiplilor.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ x, y ≤ 1.000.000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a, b ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ c, d ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
 7&lt;br /&gt;
 9 &lt;br /&gt;
 30&lt;br /&gt;
 9&lt;br /&gt;
 60&lt;br /&gt;
 20&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Maria 4&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7&#039;&#039;&#039; are în intervalul &#039;&#039;&#039;[9, 30]&#039;&#039;&#039; trei multipli &#039;&#039;&#039;{14, 21, 28}&#039;&#039;&#039;. &#039;&#039;&#039;9 &#039;&#039;&#039;are în intervalul &#039;&#039;&#039;[20, 60]&#039;&#039;&#039; patru multipli &#039;&#039;&#039;{27, 36, 45, 54}.&#039;&#039;&#039; Prin urmare numărul ales de Maria este cel câștigător, având &#039;&#039;&#039;4&#039;&#039;&#039; multipli în intervalul dat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(x, a, b, y, c, d):&lt;br /&gt;
    if not(1 &amp;lt;= x &amp;lt;= 1000000 and 1 &amp;lt;= y &amp;lt;= 1000000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not(1 &amp;lt;= a &amp;lt;= 1000000000 and 1 &amp;lt;= b &amp;lt;= 1000000000 and 1 &amp;lt;= c &amp;lt;= 1000000000 and 1 &amp;lt;= d &amp;lt;= 1000000000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not(b &amp;lt;= a or d &amp;lt;= c):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def calculate_multiples(n, a, b):&lt;br /&gt;
    count = 0&lt;br /&gt;
    for i in range(a, b+1):&lt;br /&gt;
        if i % n == 0:&lt;br /&gt;
            count += 1&lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
def find_winner(x, a, b, y, c, d):&lt;br /&gt;
    if calculate_multiples(x, a, b) &amp;gt; calculate_multiples(y, c, d):&lt;br /&gt;
        return &amp;quot;Ioana&amp;quot;, x&lt;br /&gt;
    elif calculate_multiples(x, a, b) &amp;lt; calculate_multiples(y, c, d):&lt;br /&gt;
        return &amp;quot;Maria&amp;quot;, y&lt;br /&gt;
    else:&lt;br /&gt;
        return &amp;quot;Egalitate&amp;quot;, calculate_multiples(x, a, b)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    x = int(input())&lt;br /&gt;
    a = int(input())&lt;br /&gt;
    b = int(input())&lt;br /&gt;
    y = int(input())&lt;br /&gt;
    c = int(input())&lt;br /&gt;
    d = int(input())&lt;br /&gt;
&lt;br /&gt;
    if validate_input(x, a, b, y, c, d):&lt;br /&gt;
        winner, num = find_winner(x, a, b, y, c, d)&lt;br /&gt;
        print(winner, num)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Input invalid&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, am introdus numărul 7 pentru Ioana, intervalul [9, 30], numărul 30 pentru Maria și intervalul [20, 60]. Funcția de validare verifică dacă valorile sunt valide, ceea ce este cazul aici. Apoi, funcția find_winner calculează numărul de multipli pentru fiecare număr în intervalul dat și compară rezultatele pentru a determina câștigătorul. În cazul nostru, Maria are mai mulți multipli, deci câștigă.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3644_-_Joc12&amp;diff=6164</id>
		<title>3644 - Joc12</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3644_-_Joc12&amp;diff=6164"/>
		<updated>2023-05-07T18:13:55Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Enunt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Enunț==&lt;br /&gt;
&lt;br /&gt;
Ioana și Maria tocmai au învățat la matematică despre multiplii unui număr natural. Pentru a exersa lucrul cu noua noțiune, își propun să joace următorul joc: fiecare își alege câte un număr natural nenul și pentru câte un interval închis dat (la intervalele închise capetele fac parte din interval), calculează câți multipli are numărul ales în acel interval. Câștigă cea care a ales numărul care are mai mulți multipli în intervalul primit, sau este egalitate în cazul în care numărul multiplilor este acelaşi.&lt;br /&gt;
&lt;br /&gt;
==Cerință==&lt;br /&gt;
&lt;br /&gt;
Cunoscând numerele alese de cele două fete precum și numerele care determină intervalele date, să se determine cine câștigă jocul și care este numărul care conduce la câștigarea jocului.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
De la tastatură se citesc șase valori: &#039;&#039;&#039;x a b y c d&#039;&#039;&#039;, care reprezintă, în ordine, numărul ales de Ioana și capetele intervalului primit de aceasta, numărul ales de Maria și capetele intervalului primit de ea.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
&lt;br /&gt;
Pe ecran se va afișa numele fetei care câștigă și o valoare P ce reprezintă numărul care conduce la câștigarea jocului, separate printr-un spațiu. În caz de egalitate se va afișa &#039;&#039;&#039;Egalitate&#039;&#039;&#039; urmat de un spaţiu şi de numărul egal al multiplilor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ x, y ≤ 1.000.000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ a, b ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ c, d ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;Intrare &#039;&#039;&#039;&lt;br /&gt;
 7&lt;br /&gt;
 9 &lt;br /&gt;
 30&lt;br /&gt;
 9&lt;br /&gt;
 60&lt;br /&gt;
 20&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;Ieșire &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Maria 4&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7&#039;&#039;&#039; are în intervalul &#039;&#039;&#039;[9, 30]&#039;&#039;&#039; trei multipli &#039;&#039;&#039;{14, 21, 28}&#039;&#039;&#039;. &#039;&#039;&#039;9 &#039;&#039;&#039;are în intervalul &#039;&#039;&#039;[20, 60]&#039;&#039;&#039; patru multipli &#039;&#039;&#039;{27, 36, 45, 54}.&#039;&#039;&#039; Prin urmare numărul ales de Maria este cel câștigător, având &#039;&#039;&#039;4&#039;&#039;&#039; multipli în intervalul dat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(x, a, b, y, c, d):&lt;br /&gt;
    if not(1 &amp;lt;= x &amp;lt;= 1000000 and 1 &amp;lt;= y &amp;lt;= 1000000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not(1 &amp;lt;= a &amp;lt;= 1000000000 and 1 &amp;lt;= b &amp;lt;= 1000000000 and 1 &amp;lt;= c &amp;lt;= 1000000000 and 1 &amp;lt;= d &amp;lt;= 1000000000):&lt;br /&gt;
        return False&lt;br /&gt;
    if not(b &amp;lt;= a or d &amp;lt;= c):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def calculate_multiples(n, a, b):&lt;br /&gt;
    count = 0&lt;br /&gt;
    for i in range(a, b+1):&lt;br /&gt;
        if i % n == 0:&lt;br /&gt;
            count += 1&lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
def find_winner(x, a, b, y, c, d):&lt;br /&gt;
    if calculate_multiples(x, a, b) &amp;gt; calculate_multiples(y, c, d):&lt;br /&gt;
        return &amp;quot;Ioana&amp;quot;, x&lt;br /&gt;
    elif calculate_multiples(x, a, b) &amp;lt; calculate_multiples(y, c, d):&lt;br /&gt;
        return &amp;quot;Maria&amp;quot;, y&lt;br /&gt;
    else:&lt;br /&gt;
        return &amp;quot;Egalitate&amp;quot;, calculate_multiples(x, a, b)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    x = int(input())&lt;br /&gt;
    a = int(input())&lt;br /&gt;
    b = int(input())&lt;br /&gt;
    y = int(input())&lt;br /&gt;
    c = int(input())&lt;br /&gt;
    d = int(input())&lt;br /&gt;
&lt;br /&gt;
    if validate_input(x, a, b, y, c, d):&lt;br /&gt;
        winner, num = find_winner(x, a, b, y, c, d)&lt;br /&gt;
        print(winner, num)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Input invalid&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, am introdus numărul 7 pentru Ioana, intervalul [9, 30], numărul 30 pentru Maria și intervalul [20, 60]. Funcția de validare verifică dacă valorile sunt valide, ceea ce este cazul aici. Apoi, funcția find_winner calculează numărul de multipli pentru fiecare număr în intervalul dat și compară rezultatele pentru a determina câștigătorul. În cazul nostru, Maria are mai mulți multipli, deci câștigă.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2644_-_Clase&amp;diff=6160</id>
		<title>2644 - Clase</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2644_-_Clase&amp;diff=6160"/>
		<updated>2023-05-07T17:58:17Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Exemplul 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cerință==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Într-o școală sunt n clase, fiecare având un număr diferit de elevi. Școală primește m pachete cu cărți, fiecare cu un număr diferit de cărți. Pentru ca o clasa să primească un pachet, numărul elevilor din acea clasa trebuie să fie egal cu numărul cărților din pachet. Să se determine câte clase primesc un pachet de cărți.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;clase.in&#039;&#039;&#039; va avea pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarea linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale ordonate crescător, separate prin spații, reprezentând numărul de elevi din fiecare clasa. Pe următoarea linie numărul &#039;&#039;&#039;m&#039;&#039;&#039;, și pe următoarea linie &#039;&#039;&#039;m &#039;&#039;&#039;numere, reprezentând numărul de cărți din fiecare pachet.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Fișierul de ieșire clase.out va conține pe prima linie numărul de clase care primesc pachete cu cărți. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ n, m ≤ 10.000&#039;&#039;&#039;&lt;br /&gt;
*într-un pachet sunt maximum &#039;&#039;&#039;1.000.000.000.000&#039;&#039;&#039; cărți.&lt;br /&gt;
*într-o clasă sunt maximum &#039;&#039;&#039;1.000.000.000.000&#039;&#039;&#039; elevi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;clase.in  &#039;&#039;&#039;&lt;br /&gt;
:5&lt;br /&gt;
:16 17 20 24 30&lt;br /&gt;
:4&lt;br /&gt;
:78 20 17 74&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;clase.out &#039;&#039;&#039;&lt;br /&gt;
:2&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Doar clasa cu &#039;&#039;&#039;20&#039;&#039;&#039; de elevi și cea cu &#039;&#039;&#039;17&#039;&#039;&#039; elevi vor primi pachete cu cărți.&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, m, classes, packages):&lt;br /&gt;
    # Verificăm ca n și m să fie numere întregi pozitive mai mici sau egale cu 10000&lt;br /&gt;
    if not(1 &amp;lt;= n &amp;lt;= 10000) or not(1 &amp;lt;= m &amp;lt;= 10000):&lt;br /&gt;
        return False&lt;br /&gt;
    &lt;br /&gt;
    # Verificăm ca toate clasele să aibă între 1 și 10^12 elevi&lt;br /&gt;
    for num_students in classes:&lt;br /&gt;
        if not(1 &amp;lt;= num_students &amp;lt;= 10**12):&lt;br /&gt;
            return False&lt;br /&gt;
    &lt;br /&gt;
    # Verificăm ca toate pachetele să aibă între 1 și 10^12 cărți&lt;br /&gt;
    for num_books in packages:&lt;br /&gt;
        if not(1 &amp;lt;= num_books &amp;lt;= 10**12):&lt;br /&gt;
            return False&lt;br /&gt;
    &lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def count_classes_with_packages(n, classes, m, packages):&lt;br /&gt;
    classes_with_packages = 0&lt;br /&gt;
    &lt;br /&gt;
    for package in packages:&lt;br /&gt;
        for num_students in classes:&lt;br /&gt;
            if num_students == package:&lt;br /&gt;
                classes_with_packages += 1&lt;br /&gt;
                break&lt;br /&gt;
    &lt;br /&gt;
    return classes_with_packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # Citim numărul de clase și lista cu numărul de elevi pentru fiecare clasă&lt;br /&gt;
    with open(&#039;clase.in&#039;, &#039;r&#039;) as f:&lt;br /&gt;
        n = int(f.readline())&lt;br /&gt;
        classes = list(map(int, f.readline().split()))&lt;br /&gt;
        &lt;br /&gt;
    # Citim numărul de pachete și lista cu numărul de cărți pentru fiecare pachet&lt;br /&gt;
    with open(&#039;clase.in&#039;, &#039;r&#039;) as f:&lt;br /&gt;
        m = int(f.readline())&lt;br /&gt;
        packages = list(map(int, f.readline().split()))&lt;br /&gt;
    &lt;br /&gt;
   # Validăm datele de intrare&lt;br /&gt;
    if not validate_input(n, m, classes, packages):&lt;br /&gt;
        print(&#039;Datele de intrare nu corespund restrictiilor impuse.&#039;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&#039;Datele de intrare corespund restrictiilor impuse.&#039;)&lt;br /&gt;
        # Determinăm numărul de clase care primesc pachete cu cărți&lt;br /&gt;
        classes_with_packages = count_classes_with_packages(n, classes, m, packages)&lt;br /&gt;
        # Scriem rezultatul în fișierul de ieșire&lt;br /&gt;
        with open(&#039;clase.out&#039;, &#039;w&#039;) as f:&lt;br /&gt;
            f.write(str(classes_with_packages))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Mai exact, codul verifică dacă datele de intrare sunt valide prin intermediul funcției validate_input(), care verifică ca numerele de clase și pachete să fie întregi pozitive între 1 și 10000, iar numărul de elevi și cărți să fie între 1 și 10^12.&lt;br /&gt;
&lt;br /&gt;
Apoi, funcția count_classes_with_packages() primește numărul de clase, lista cu numărul de elevi pentru fiecare clasă, numărul de pachete și lista cu numărul de cărți pentru fiecare pachet. Aceasta determină numărul de clase care primesc pachete cu cărți prin parcurgerea tuturor pachetelor și a tuturor claselor și verificarea dacă numărul de elevi dintr-o clasă este egal cu numărul de cărți dintr-un pachet.&lt;br /&gt;
&lt;br /&gt;
În final, codul scrie rezultatul în fișierul de ieșire clase.out și ar trebui să afișeze numărul corect de clase care primesc pachete cu cărți în consolă.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2644_-_Clase&amp;diff=6159</id>
		<title>2644 - Clase</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2644_-_Clase&amp;diff=6159"/>
		<updated>2023-05-07T17:57:58Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Explicatie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cerință==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Într-o școală sunt n clase, fiecare având un număr diferit de elevi. Școală primește m pachete cu cărți, fiecare cu un număr diferit de cărți. Pentru ca o clasa să primească un pachet, numărul elevilor din acea clasa trebuie să fie egal cu numărul cărților din pachet. Să se determine câte clase primesc un pachet de cărți.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;clase.in&#039;&#039;&#039; va avea pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarea linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale ordonate crescător, separate prin spații, reprezentând numărul de elevi din fiecare clasa. Pe următoarea linie numărul &#039;&#039;&#039;m&#039;&#039;&#039;, și pe următoarea linie &#039;&#039;&#039;m &#039;&#039;&#039;numere, reprezentând numărul de cărți din fiecare pachet.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Fișierul de ieșire clase.out va conține pe prima linie numărul de clase care primesc pachete cu cărți. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ n, m ≤ 10.000&#039;&#039;&#039;&lt;br /&gt;
*într-un pachet sunt maximum &#039;&#039;&#039;1.000.000.000.000&#039;&#039;&#039; cărți.&lt;br /&gt;
*într-o clasă sunt maximum &#039;&#039;&#039;1.000.000.000.000&#039;&#039;&#039; elevi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;clase.in  &#039;&#039;&#039;&lt;br /&gt;
:5&lt;br /&gt;
:16 17 20 24 30&lt;br /&gt;
:4&lt;br /&gt;
:78 20 17 74&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;clase.out &#039;&#039;&#039;&lt;br /&gt;
:2&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Doar clasa cu &#039;&#039;&#039;20&#039;&#039;&#039; de elevi și cea cu &#039;&#039;&#039;17&#039;&#039;&#039; elevi vor primi pachete cu cărți.&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, m, classes, packages):&lt;br /&gt;
    # Verificăm ca n și m să fie numere întregi pozitive mai mici sau egale cu 10000&lt;br /&gt;
    if not(1 &amp;lt;= n &amp;lt;= 10000) or not(1 &amp;lt;= m &amp;lt;= 10000):&lt;br /&gt;
        return False&lt;br /&gt;
    &lt;br /&gt;
    # Verificăm ca toate clasele să aibă între 1 și 10^12 elevi&lt;br /&gt;
    for num_students in classes:&lt;br /&gt;
        if not(1 &amp;lt;= num_students &amp;lt;= 10**12):&lt;br /&gt;
            return False&lt;br /&gt;
    &lt;br /&gt;
    # Verificăm ca toate pachetele să aibă între 1 și 10^12 cărți&lt;br /&gt;
    for num_books in packages:&lt;br /&gt;
        if not(1 &amp;lt;= num_books &amp;lt;= 10**12):&lt;br /&gt;
            return False&lt;br /&gt;
    &lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def count_classes_with_packages(n, classes, m, packages):&lt;br /&gt;
    classes_with_packages = 0&lt;br /&gt;
    &lt;br /&gt;
    for package in packages:&lt;br /&gt;
        for num_students in classes:&lt;br /&gt;
            if num_students == package:&lt;br /&gt;
                classes_with_packages += 1&lt;br /&gt;
                break&lt;br /&gt;
    &lt;br /&gt;
    return classes_with_packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # Citim numărul de clase și lista cu numărul de elevi pentru fiecare clasă&lt;br /&gt;
    with open(&#039;clase.in&#039;, &#039;r&#039;) as f:&lt;br /&gt;
        n = int(f.readline())&lt;br /&gt;
        classes = list(map(int, f.readline().split()))&lt;br /&gt;
        &lt;br /&gt;
    # Citim numărul de pachete și lista cu numărul de cărți pentru fiecare pachet&lt;br /&gt;
    with open(&#039;clase.in&#039;, &#039;r&#039;) as f:&lt;br /&gt;
        m = int(f.readline())&lt;br /&gt;
        packages = list(map(int, f.readline().split()))&lt;br /&gt;
    &lt;br /&gt;
   # Validăm datele de intrare&lt;br /&gt;
    if not validate_input(n, m, classes, packages):&lt;br /&gt;
        print(&#039;Datele de intrare nu corespund restrictiilor impuse.&#039;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&#039;Datele de intrare corespund restrictiilor impuse.&#039;)&lt;br /&gt;
        # Determinăm numărul de clase care primesc pachete cu cărți&lt;br /&gt;
        classes_with_packages = count_classes_with_packages(n, classes, m, packages)&lt;br /&gt;
        # Scriem rezultatul în fișierul de ieșire&lt;br /&gt;
        with open(&#039;clase.out&#039;, &#039;w&#039;) as f:&lt;br /&gt;
            f.write(str(classes_with_packages))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Mai exact, codul verifică dacă datele de intrare sunt valide prin intermediul funcției validate_input(), care verifică ca numerele de clase și pachete să fie întregi pozitive între 1 și 10000, iar numărul de elevi și cărți să fie între 1 și 10^12.&lt;br /&gt;
&lt;br /&gt;
Apoi, funcția count_classes_with_packages() primește numărul de clase, lista cu numărul de elevi pentru fiecare clasă, numărul de pachete și lista cu numărul de cărți pentru fiecare pachet. Aceasta determină numărul de clase care primesc pachete cu cărți prin parcurgerea tuturor pachetelor și a tuturor claselor și verificarea dacă numărul de elevi dintr-o clasă este egal cu numărul de cărți dintr-un pachet.&lt;br /&gt;
&lt;br /&gt;
În final, codul scrie rezultatul în fișierul de ieșire clase.out și ar trebui să afișeze numărul corect de clase care primesc pachete cu cărți în consolă.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2644_-_Clase&amp;diff=6158</id>
		<title>2644 - Clase</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2644_-_Clase&amp;diff=6158"/>
		<updated>2023-05-07T17:57:49Z</updated>

		<summary type="html">&lt;p&gt;Vardai Erwin: /* Rezolvare ver. 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cerință==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Într-o școală sunt n clase, fiecare având un număr diferit de elevi. Școală primește m pachete cu cărți, fiecare cu un număr diferit de cărți. Pentru ca o clasa să primească un pachet, numărul elevilor din acea clasa trebuie să fie egal cu numărul cărților din pachet. Să se determine câte clase primesc un pachet de cărți.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;clase.in&#039;&#039;&#039; va avea pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarea linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale ordonate crescător, separate prin spații, reprezentând numărul de elevi din fiecare clasa. Pe următoarea linie numărul &#039;&#039;&#039;m&#039;&#039;&#039;, și pe următoarea linie &#039;&#039;&#039;m &#039;&#039;&#039;numere, reprezentând numărul de cărți din fiecare pachet.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
Fișierul de ieșire clase.out va conține pe prima linie numărul de clase care primesc pachete cu cărți. În caz contrar, se va afișa pe ecran: &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1 ≤ n, m ≤ 10.000&#039;&#039;&#039;&lt;br /&gt;
*într-un pachet sunt maximum &#039;&#039;&#039;1.000.000.000.000&#039;&#039;&#039; cărți.&lt;br /&gt;
*într-o clasă sunt maximum &#039;&#039;&#039;1.000.000.000.000&#039;&#039;&#039; elevi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;&#039;&#039;&#039;clase.in  &#039;&#039;&#039;&lt;br /&gt;
:5&lt;br /&gt;
:16 17 20 24 30&lt;br /&gt;
:4&lt;br /&gt;
:78 20 17 74&lt;br /&gt;
&lt;br /&gt;
;&#039;&#039;&#039;clase.out &#039;&#039;&#039;&lt;br /&gt;
:2&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
&lt;br /&gt;
Doar clasa cu &#039;&#039;&#039;20&#039;&#039;&#039; de elevi și cea cu &#039;&#039;&#039;17&#039;&#039;&#039; elevi vor primi pachete cu cărți.&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
===Rezolvare ver. 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def validate_input(n, m, classes, packages):&lt;br /&gt;
    # Verificăm ca n și m să fie numere întregi pozitive mai mici sau egale cu 10000&lt;br /&gt;
    if not(1 &amp;lt;= n &amp;lt;= 10000) or not(1 &amp;lt;= m &amp;lt;= 10000):&lt;br /&gt;
        return False&lt;br /&gt;
    &lt;br /&gt;
    # Verificăm ca toate clasele să aibă între 1 și 10^12 elevi&lt;br /&gt;
    for num_students in classes:&lt;br /&gt;
        if not(1 &amp;lt;= num_students &amp;lt;= 10**12):&lt;br /&gt;
            return False&lt;br /&gt;
    &lt;br /&gt;
    # Verificăm ca toate pachetele să aibă între 1 și 10^12 cărți&lt;br /&gt;
    for num_books in packages:&lt;br /&gt;
        if not(1 &amp;lt;= num_books &amp;lt;= 10**12):&lt;br /&gt;
            return False&lt;br /&gt;
    &lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def count_classes_with_packages(n, classes, m, packages):&lt;br /&gt;
    classes_with_packages = 0&lt;br /&gt;
    &lt;br /&gt;
    for package in packages:&lt;br /&gt;
        for num_students in classes:&lt;br /&gt;
            if num_students == package:&lt;br /&gt;
                classes_with_packages += 1&lt;br /&gt;
                break&lt;br /&gt;
    &lt;br /&gt;
    return classes_with_packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    # Citim numărul de clase și lista cu numărul de elevi pentru fiecare clasă&lt;br /&gt;
    with open(&#039;clase.in&#039;, &#039;r&#039;) as f:&lt;br /&gt;
        n = int(f.readline())&lt;br /&gt;
        classes = list(map(int, f.readline().split()))&lt;br /&gt;
        &lt;br /&gt;
    # Citim numărul de pachete și lista cu numărul de cărți pentru fiecare pachet&lt;br /&gt;
    with open(&#039;clase.in&#039;, &#039;r&#039;) as f:&lt;br /&gt;
        m = int(f.readline())&lt;br /&gt;
        packages = list(map(int, f.readline().split()))&lt;br /&gt;
    &lt;br /&gt;
   # Validăm datele de intrare&lt;br /&gt;
    if not validate_input(n, m, classes, packages):&lt;br /&gt;
        print(&#039;Datele de intrare nu corespund restrictiilor impuse.&#039;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&#039;Datele de intrare corespund restrictiilor impuse.&#039;)&lt;br /&gt;
        # Determinăm numărul de clase care primesc pachete cu cărți&lt;br /&gt;
        classes_with_packages = count_classes_with_packages(n, classes, m, packages)&lt;br /&gt;
        # Scriem rezultatul în fișierul de ieșire&lt;br /&gt;
        with open(&#039;clase.out&#039;, &#039;w&#039;) as f:&lt;br /&gt;
            f.write(str(classes_with_packages))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explicatie==&lt;br /&gt;
&lt;br /&gt;
Mai exact, codul verifică dacă datele de intrare sunt valide prin intermediul funcției validate_input(), care verifică ca numerele de clase și pachete să fie întregi pozitive între 1 și 10000, iar numărul de elevi și cărți să fie între 1 și 10^12.&lt;br /&gt;
&lt;br /&gt;
Apoi, funcția count_classes_with_packages() primește numărul de clase, lista cu numărul de elevi pentru fiecare clasă, numărul de pachete și lista cu numărul de cărți pentru fiecare pachet. Aceasta determină numărul de clase care primesc pachete cu cărți prin parcurgerea tuturor pachetelor și a tuturor claselor și verificarea dacă numărul de elevi dintr-o clasă este egal cu numărul de cărți dintr-un pachet.&lt;br /&gt;
&lt;br /&gt;
În final, codul scrie rezultatul în fișierul de ieșire clase.out și ar trebui să afișeze numărul corect de clase care primesc pachete cu cărți în consolă.&lt;/div&gt;</summary>
		<author><name>Vardai Erwin</name></author>
	</entry>
</feed>