<?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=Ghisa+Catalin</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=Ghisa+Catalin"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/wiki/Special:Contributions/Ghisa_Catalin"/>
	<updated>2026-05-03T13:36:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=15324&amp;diff=10414</id>
		<title>15324</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=15324&amp;diff=10414"/>
		<updated>2024-12-11T10:10:25Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;E:15324 (Cristina Vijdeluc și Mihai Vijdeluc)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Determinați cifrele nenule &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; pentru care &amp;lt;math&amp;gt;\frac{y^3}{x^3} - \frac{\overline{xy}}{x} = 2\left(\frac{\overline{xy}}{x} - 16\right)&amp;lt;/math&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție.&#039;&#039;&#039; Avem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{y^3}{x^3} - 3\frac{y}{x} + 32 = 0&amp;lt;/math&amp;gt; și, cum &amp;lt;math&amp;gt;\frac{\overline{xy}}{x} = \frac{10x + y}{x} = 10 + \frac{y}{x}&amp;lt;/math&amp;gt;, obținem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{y^3}{x^3} - 3\frac{y}{x} + 2 = 0&amp;lt;/math&amp;gt;. Notăm &amp;lt;math&amp;gt;\frac{y}{x} = t &amp;gt; 0&amp;lt;/math&amp;gt; și obținem ecuația &amp;lt;math&amp;gt;t^3 - 3t + 2 = 0&amp;lt;/math&amp;gt; cu soluțiile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = 1&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;t = -2&amp;lt;/math&amp;gt;. Din &amp;lt;math&amp;gt;\frac{y}{x} = 1&amp;lt;/math&amp;gt; obținem &amp;lt;math&amp;gt;x = y&amp;lt;/math&amp;gt;, de unde perechile de cifre posibile sunt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(1,1), (2,2), (3,3), (4,4), (5,5), (6,6), (7,7), (8,8)&amp;lt;/math&amp;gt; sau &amp;lt;math&amp;gt;(9,9)&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=15324&amp;diff=10413</id>
		<title>15324</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=15324&amp;diff=10413"/>
		<updated>2024-12-11T10:08:53Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;E:15324 (Cristina Vijdeluc și Mihai Vijdeluc)&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;Determinați cifrele nenule &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; pentru care &amp;lt;math&amp;gt;\frac{y^3}{x^3} - \frac{xy}{x} = 2\left(\frac{xy}{x} - 16\right)&amp;lt;/math&amp;gt;.&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;Soluție.&amp;#039;&amp;#039;&amp;#039; Avem:  &amp;lt;math&amp;gt;\frac{y^3}{x^3} - 3\frac{y}{x} + 32 = 0&amp;lt;/math&amp;gt; și, cum &amp;lt;math&amp;gt;\frac{xy}{x} = \frac{10x + y}{x} = 10 + \frac{y}{x}&amp;lt;/math&amp;gt;, obținem:  &amp;lt;math&amp;gt;\frac{y^3}{x^3} - 3\frac{y}{x} + 2 = 0&amp;lt;/math&amp;gt;. Notăm &amp;lt;math&amp;gt;\frac{y}{x} = t &amp;gt; 0&amp;lt;/math&amp;gt; și obț...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;E:15324 (Cristina Vijdeluc și Mihai Vijdeluc)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Determinați cifrele nenule &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; pentru care &amp;lt;math&amp;gt;\frac{y^3}{x^3} - \frac{xy}{x} = 2\left(\frac{xy}{x} - 16\right)&amp;lt;/math&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție.&#039;&#039;&#039; Avem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{y^3}{x^3} - 3\frac{y}{x} + 32 = 0&amp;lt;/math&amp;gt; și, cum &amp;lt;math&amp;gt;\frac{xy}{x} = \frac{10x + y}{x} = 10 + \frac{y}{x}&amp;lt;/math&amp;gt;, obținem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{y^3}{x^3} - 3\frac{y}{x} + 2 = 0&amp;lt;/math&amp;gt;. Notăm &amp;lt;math&amp;gt;\frac{y}{x} = t &amp;gt; 0&amp;lt;/math&amp;gt; și obținem ecuația &amp;lt;math&amp;gt;t^3 - 3t + 2 = 0&amp;lt;/math&amp;gt; cu soluțiile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;t = 1&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;t = -2&amp;lt;/math&amp;gt;. Din &amp;lt;math&amp;gt;\frac{y}{x} = 1&amp;lt;/math&amp;gt; obținem &amp;lt;math&amp;gt;x = y&amp;lt;/math&amp;gt;, de unde perechile de cifre posibile sunt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(1,1), (2,2), (3,3), (4,4), (5,5), (6,6), (7,7), (8,8)&amp;lt;/math&amp;gt; sau &amp;lt;math&amp;gt;(9,9)&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=15323&amp;diff=10412</id>
		<title>15323</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=15323&amp;diff=10412"/>
		<updated>2024-12-11T10:05:59Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;E:15323 (Cristina Vijdeluc și Mihai Vijdeluc)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Arătați că există o infinitate de numere naturale diferite &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; pentru care &amp;lt;math&amp;gt;4a^2 - 2022ab + 2018b^2 = 0&amp;lt;/math&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție.&#039;&#039;&#039; Relația se scrie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;4a^2 - 4ab - 2018ab + 2018b^2 = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sau&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;4a(a - b) - 2018b(a - b) = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Cum &amp;lt;math&amp;gt;a \neq b&amp;lt;/math&amp;gt;, putem împărți prin &amp;lt;math&amp;gt;2(a - b)&amp;lt;/math&amp;gt; și obținem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;2a - 1009b = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Orice pereche de forma &amp;lt;math&amp;gt;(1009k, 2k)&amp;lt;/math&amp;gt;, unde &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; este un număr natural, este soluție a acestei ecuații.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=15323&amp;diff=10411</id>
		<title>15323</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=15323&amp;diff=10411"/>
		<updated>2024-12-11T10:05:15Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;**E:15323 (Cristina Vijdeluc și Mihai Vijdeluc)**&lt;br /&gt;
&lt;br /&gt;
*Arătați că există o infinitate de numere naturale diferite a și b pentru care 4a² - 2022ab + 2018b² = 0.*&lt;br /&gt;
&lt;br /&gt;
**Soluție**&lt;br /&gt;
&lt;br /&gt;
Relația se scrie:&lt;br /&gt;
&lt;br /&gt;
4a² - 4ab - 2018ab + 2018b² = 0&lt;br /&gt;
&lt;br /&gt;
sau&lt;br /&gt;
&lt;br /&gt;
4a(a - b) - 2018b(a - b) = 0.&lt;br /&gt;
&lt;br /&gt;
Cum a ≠ b, putem împărți prin 2(a - b) și obținem:&lt;br /&gt;
&lt;br /&gt;
2a - 1009b = 0.&lt;br /&gt;
&lt;br /&gt;
Orice pereche de forma (1009k, 2k), unde k este un număr natural, este soluție a acestei ecuații.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=15323&amp;diff=10410</id>
		<title>15323</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=15323&amp;diff=10410"/>
		<updated>2024-12-11T10:03:00Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;E:15323 (Cristina Vijdeluc și Mihai Vijdeluc)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Arătați că există o infinitate de numere naturale diferite &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; pentru care &amp;lt;math&amp;gt;4a^2 - 2022ab + 2018b^2 = 0&amp;lt;/math&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție.&#039;&#039;&#039; Relația se scrie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;4a^2 - 4ab - 2018ab + 2018b^2 = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sau&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;4a(a - b) - 2018b(a - b) = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Cum &amp;lt;math&amp;gt;a \neq b&amp;lt;/math&amp;gt;, putem împărți prin &amp;lt;math&amp;gt;2(a - b)&amp;lt;/math&amp;gt; și obținem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;2a - 1009b = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Orice pereche de forma &amp;lt;math&amp;gt;(1009k, 2k)&amp;lt;/math&amp;gt;, unde &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; este un număr natural, este soluție a acestei ecuații.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=15323&amp;diff=10409</id>
		<title>15323</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=15323&amp;diff=10409"/>
		<updated>2024-12-11T10:02:22Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;E:15323 (Cristina Vijdeluc și Mihai Vijdeluc)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Arătați că există o infinitate de numere naturale diferite &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; și &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; pentru care &amp;lt;math&amp;gt;4a^2 - 2022ab + 2018b^2 = 0&amp;lt;/math&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție.&#039;&#039;&#039; Relația se scrie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;4a^2 - 4ab - 2018ab + 2018b^2 = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sau&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;4a(a-b) - 2018b(a-b) = 0.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cum &amp;lt;math&amp;gt;a \neq b&amp;lt;/math&amp;gt;, putem împărți prin &amp;lt;math&amp;gt;2(a-b)&amp;lt;/math&amp;gt; și obținem:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;2a - 1009b = 0.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Orice pereche de forma &amp;lt;math&amp;gt;(1009k, 2k)&amp;lt;/math&amp;gt;, unde &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; este un număr natural, este soluție a acestei ecuații.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=15323&amp;diff=10408</id>
		<title>15323</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=15323&amp;diff=10408"/>
		<updated>2024-12-11T10:01:53Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;E:15323 (Cristina Vijdeluc și Mihai Vijdeluc)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Arătați că există o infinitate de numere naturale diferite a și b pentru care &amp;lt;math&amp;gt;4a^2 - 2022ab + 2018b^2 = 0&amp;lt;/math&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soluție.&#039;&#039;&#039; Relația se scrie&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;4a^2 - 4ab - 2018ab + 2018b^2 = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sau&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;4a(a - b) - 2018b(a - b) = 0.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cum &amp;lt;math&amp;gt;a \neq b&amp;lt;/math&amp;gt; putem împărți prin &amp;lt;math&amp;gt;2(a - b)&amp;lt;/math&amp;gt; și obținem &amp;lt;math&amp;gt;2a - 1009b = 0.&amp;lt;/math&amp;gt; Orice pereche de forma &amp;lt;math&amp;gt;(1009k, 2k)&amp;lt;/math&amp;gt;, unde &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; este număr natural este soluție a acestei ecuații.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=15323&amp;diff=10406</id>
		<title>15323</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=15323&amp;diff=10406"/>
		<updated>2024-12-11T10:01:05Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;E:15323 (Cristina Vijdeluc și Mihai Vijdeluc)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Arătați că există o infinitate de numere naturale diferite a și b pentru care &amp;lt;math&amp;gt;4a^2 - 2022ab + 2018b^2 = 0&amp;lt;/math&amp;gt;.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=15323&amp;diff=10405</id>
		<title>15323</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=15323&amp;diff=10405"/>
		<updated>2024-12-11T10:00:24Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;E:15323 (Cristina Vijdeluc și Mihai Vijdeluc)&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Arătați că există o infinitate de numere naturale diferite a și b pentru care &amp;lt;math&amp;gt;4a^2 - 2022ab + 2018b^2 = 0&amp;lt;/math&amp;gt;.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=15323&amp;diff=10404</id>
		<title>15323</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=15323&amp;diff=10404"/>
		<updated>2024-12-11T09:57:34Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;E:15323 (Cristina Vijdeluc și Mihai Vijdeluc)&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=15323&amp;diff=10403</id>
		<title>15323</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=15323&amp;diff=10403"/>
		<updated>2024-12-11T09:57:21Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Created page with &amp;quot;&amp;lt;nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/nowiki&amp;gt;E:15323 (Cristina Vijdeluc și Mihai Vijdeluc)&amp;lt;nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt;E:15323 (Cristina Vijdeluc și Mihai Vijdeluc)&amp;lt;nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0096_-_Palindrom_Maxim&amp;diff=8381</id>
		<title>0096 - Palindrom Maxim</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0096_-_Palindrom_Maxim&amp;diff=8381"/>
		<updated>2023-12-26T14:37:57Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește o propoziție și determină cuvântul &#039;&#039;&#039;palindrom&#039;&#039; de lungime maximă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură o propoziție alcătuită din litere mici sau mari ale alfabetului englez, cifre, semne de punctuație și spații.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul afișează pe ecran cel mai lung cuvânt palindrom.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* propoziția va conține cel mult &#039;&#039;&#039;255&#039;&#039;&#039; de caractere;&lt;br /&gt;
* cuvintele conțin doar litere și/sau cifre și conțin cel mult &#039;&#039;&#039;20&#039;&#039;&#039; de caractere;&lt;br /&gt;
* dacă în propoziție există mai multe cuvinte palindrom de lungime maximă, se va afișa primul dintre ele;&lt;br /&gt;
* semnele de punctuație din propoziție pot fi &#039;&#039;&#039;:;.,&#039;&#039;&#039;&lt;br /&gt;
* nu se face distincție între literele mari și cele mici;&lt;br /&gt;
* pentru toate testele date există soluție&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 121 prieteni analizeaza Un capac; aeriSIrea    radar&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 aeriSIrea&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 121 prieteni analizeazacevafoarteinteresant Un capac; aeriSIrea    radar&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import string&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea propoziției de la tastatură&lt;br /&gt;
    propozitie = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă propoziția respectă restricțiile&lt;br /&gt;
    if len(propozitie) &amp;gt; 255:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(len(cuvant) &amp;gt; 20 for cuvant in propozitie.split()):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Eliminarea semnelor de punctuație din propoziție&lt;br /&gt;
    propozitie = propozitie.translate(str.maketrans(&#039;&#039;, &#039;&#039;, string.punctuation))&lt;br /&gt;
&lt;br /&gt;
    # Căutarea celui mai lung cuvânt palindrom&lt;br /&gt;
    cuvinte = propozitie.split()&lt;br /&gt;
    cuvinte_palindrom = [cuvant for cuvant in cuvinte if cuvant.lower() == cuvant.lower()[::-1]]&lt;br /&gt;
    cuvant_maxim = max(cuvinte_palindrom, key=len) if cuvinte_palindrom else &amp;quot;nu exista&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Afișarea cuvântului obținut&lt;br /&gt;
    print(cuvant_maxim)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Explicatie==&lt;br /&gt;
În propoziție sunt &#039;&#039;&#039;4&#039;&#039;&#039; cuvinte palindrom: &#039;&#039;&#039;121, capac, aeriSIrea, radar.&#039;&#039;&#039; Dintre acestea, cel mai lung este &#039;&#039;&#039;aeriSIrea&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0846_-_Dubluri&amp;diff=8380</id>
		<title>0846 - Dubluri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0846_-_Dubluri&amp;diff=8380"/>
		<updated>2023-12-26T14:35:17Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă un șir de caractere ce conține doar litere mici ale alfabetului englez. Să se afișeze cel mai lung subșir care apare de cel puțin două ori în șirul dat.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură șirul dat.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran cel mai lung subșir cu cel puțin două apariții.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* șirul dat are cel mult &#039;&#039;&#039;255&#039;&#039;&#039; caractere&lt;br /&gt;
* dacă există mai multe subșiruri de lungime maximă care apar de cel puțin două ori, se va afișa primul în ordine lexicografică.&lt;br /&gt;
* pentru toate datele de test există cel puțin un subșir din cel puțin două caractere, care se repetă&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 cbddccdaaddccaaddbccbbdbddd&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 aadd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Bunaziua&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de caractere de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 255:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(not caracter.islower() for caracter in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Căutarea celui mai lung subșir care apare de cel puțin două ori&lt;br /&gt;
    lungime_maxima = 0&lt;br /&gt;
    subșir_maxim = &#039;&#039;&lt;br /&gt;
    for i in range(len(sir)):&lt;br /&gt;
        for j in range(i+2, len(sir)+1):&lt;br /&gt;
            subșir = sir[i:j]&lt;br /&gt;
            if sir.count(subșir) &amp;gt;= 2 and len(subșir) &amp;gt; lungime_maxima:&lt;br /&gt;
                lungime_maxima = len(subșir)&lt;br /&gt;
                subșir_maxim = subșir&lt;br /&gt;
            elif len(subșir) == lungime_maxima and subșir &amp;lt; subșir_maxim:&lt;br /&gt;
                subșir_maxim = subșir&lt;br /&gt;
&lt;br /&gt;
    # Afișarea subșirului obținut&lt;br /&gt;
    print(subșir_maxim)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
Sirul &#039;&#039;&#039;aadd&#039;&#039;&#039; apare de două ori șirul dat. Niciun șir de lungime mai mare nu apare de cel puțin două ori. Să observăm că și șirul &#039;&#039;&#039;ddcc&#039;&#039;&#039; apare de două ori, dar ele este mai mare decât &#039;&#039;&#039;aadd&#039;&#039;&#039;, în ordinea lexicografică.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0973_-_Cuvinte_1&amp;diff=8379</id>
		<title>0973 - Cuvinte 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0973_-_Cuvinte_1&amp;diff=8379"/>
		<updated>2023-12-26T14:34:04Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă o propoziție care conține numai litere mici ale alfabetului englez și spații. Să se afișeze cuvintele din propoziție care conțin numai vocale.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură șirul dat.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran cuvintele cerute, în ordinea din propoziție, câte un cuvânt pe linie.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* propoziția va conține cel mult &#039;&#039;&#039;255&#039;&#039;&#039; de caractere&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 ei pazesc o oaie &lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 ei&lt;br /&gt;
 o&lt;br /&gt;
 oaie&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Ei pazesc o oaie &lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea propoziției de la tastatură&lt;br /&gt;
    propozitie = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă propoziția respectă restricțiile&lt;br /&gt;
    if len(propozitie) &amp;gt; 255 or any(not caracter.islower() and not caracter.isspace() for caracter in propozitie):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Afișarea cuvintelor din propoziție care conțin numai vocale&lt;br /&gt;
    vocale = set(&#039;aeiou&#039;)&lt;br /&gt;
    cuvinte = propozitie.split()&lt;br /&gt;
    for cuvant in cuvinte:&lt;br /&gt;
        if set(cuvant).issubset(vocale):&lt;br /&gt;
            print(cuvant)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0887_-_Nr_Anagrame&amp;diff=8007</id>
		<title>0887 - Nr Anagrame</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0887_-_Nr_Anagrame&amp;diff=8007"/>
		<updated>2023-12-13T15:48:16Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații. Să se determine câte cuvinte din sir sunt anagrame ale ultimului cuvânt, fără a fi identice cu acesta == Date de intrare == Programul va citi de la tastatură şirul dat. == Date de ieșire == Programul va afişa pe ecran un număr &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;, reprezentând valoarea cerută. == Restricţii şi precizări == * șirul dat va...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații. Să se determine câte cuvinte din sir sunt anagrame ale ultimului cuvânt, fără a fi identice cu acesta&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul va citi de la tastatură şirul dat.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afişa pe ecran un număr &#039;&#039;&#039;C&#039;&#039;&#039;, reprezentând valoarea cerută.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* șirul dat va conține cel mult 255 caractere, litere mici ale alfabetului englez și spații&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 arc ingrat din granit car argint arc rating rac argint&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 ARC ingrat din granit car argint arc rating rac argint&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 255 or not all(c.islower() or c.isspace() for c in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Separarea șirului în cuvinte&lt;br /&gt;
    cuvinte = sir.split()&lt;br /&gt;
&lt;br /&gt;
    # Obținerea ultimului cuvânt și a anagramei sale&lt;br /&gt;
    ultimul_cuvant = cuvinte[-1]&lt;br /&gt;
    anagrama = sorted(ultimul_cuvant)&lt;br /&gt;
&lt;br /&gt;
    # Calcularea numărului de cuvinte care sunt anagrame ale ultimului cuvânt, dar nu sunt identice cu acesta&lt;br /&gt;
    numar_cuvinte = sum(sorted(cuvant) == anagrama and cuvant != ultimul_cuvant for cuvant in cuvinte[:-1])&lt;br /&gt;
&lt;br /&gt;
    # Afișarea numărului de cuvinte&lt;br /&gt;
    print(numar_cuvinte)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2592_-_Afis_Simetric&amp;diff=8006</id>
		<title>2592 - Afis Simetric</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2592_-_Afis_Simetric&amp;diff=8006"/>
		<updated>2023-12-13T15:44:18Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se dau &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; șiruri de caractere care conțin cuvinte formate doar din litere mici și mari ale alfabetului englez, separate prin câte un singur spațiu.  Să se afișeze un nou șir format din primul cuvânt al fiecărui șir în ordinea citirii, al doilea cuvânt al fiecărui șir în ordinea citirii, etc. Dacă șirurile nu au același număr de cuvinte, se continuă acest proces, până când fiecare șir ajunge la final, tot în ordinea citirii. == Dat...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; șiruri de caractere care conțin cuvinte formate doar din litere mici și mari ale alfabetului englez, separate prin câte un singur spațiu.&lt;br /&gt;
&lt;br /&gt;
Să se afișeze un nou șir format din primul cuvânt al fiecărui șir în ordinea citirii, al doilea cuvânt al fiecărui șir în ordinea citirii, etc. Dacă șirurile nu au același număr de cuvinte, se continuă acest proces, până când fiecare șir ajunge la final, tot în ordinea citirii.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Se citește de la tastatură pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarele &#039;&#039;&#039;n&#039;&#039;&#039; linii cele &#039;&#039;&#039;n&#039;&#039;&#039; șiruri de caractere.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran șirul rezultat conform cerinței.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; n &amp;amp;les; 10&lt;br /&gt;
* fiecare șir are maximum &#039;&#039;&#039;1000&#039;&#039;&#039; de caractere&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 3&lt;br /&gt;
 ana are mere&lt;br /&gt;
 el are&lt;br /&gt;
 ea are pere prune&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 ana el ea are are are mere pere prune&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 -1&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea numărului de șiruri de la tastatură&lt;br /&gt;
    n = int(input().strip())&lt;br /&gt;
&lt;br /&gt;
    # Verificarea dacă numărul de șiruri respectă restricțiile&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 10:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    # Citirea șirurilor de la tastatură și separarea lor în cuvinte&lt;br /&gt;
    siruri = [input().strip().split() for _ in range(n)]&lt;br /&gt;
&lt;br /&gt;
    # Verificarea dacă șirurile respectă restricțiile&lt;br /&gt;
    if any(len(sir) &amp;gt; 1000 or not all(cuvant.isalpha() for cuvant in sir) for sir in siruri):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Crearea unui nou șir format din cuvintele fiecărui șir în ordinea citirii&lt;br /&gt;
    sir_nou = []&lt;br /&gt;
    for i in range(max(len(sir) for sir in siruri)):&lt;br /&gt;
        for sir in siruri:&lt;br /&gt;
            if i &amp;lt; len(sir):&lt;br /&gt;
                sir_nou.append(sir[i])&lt;br /&gt;
&lt;br /&gt;
    # Afișarea noului șir&lt;br /&gt;
    print(&#039; &#039;.join(sir_nou))&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0799_-_Eliminare_Litera&amp;diff=8005</id>
		<title>0799 - Eliminare Litera</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0799_-_Eliminare_Litera&amp;diff=8005"/>
		<updated>2023-12-13T15:39:16Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Să se scrie un program care citește un șir de caractere în care cuvintele sunt formate numai din litere mici ale alfabetului englez și sunt separate prin câte un spațiu și elimină litera din mijloc a fiecărui cuvânt cu număr impar de litere (cel puțin trei). == Date de intrare == Programul citește de la tastatură un șir de cel mult &amp;#039;&amp;#039;&amp;#039;100&amp;#039;&amp;#039;&amp;#039; caractere == Date de ieșire == Programul afișează pe ecran textul obţinut, iar dacă nu există niciu...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește un șir de caractere în care cuvintele sunt formate numai din litere mici ale alfabetului englez și sunt separate prin câte un spațiu și elimină litera din mijloc a fiecărui cuvânt cu număr impar de litere (cel puțin trei).&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură un șir de cel mult &#039;&#039;&#039;100&#039;&#039;&#039; caractere&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul afișează pe ecran textul obţinut, iar dacă nu există niciun cuvânt modificat, afișează pe ecran mesajul &#039;&#039;&#039;nu exista&#039;&#039;&#039;.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 pictura prin aceea arata o pace profunda&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 picura prin acea arta o pace profunda&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Loremipsumdolorsitamet,consecteturadipiscingelit.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.&lt;br /&gt;
&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 100 or not all(c.islower() or c.isspace() for c in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Separarea șirului în cuvinte&lt;br /&gt;
    cuvinte = sir.split()&lt;br /&gt;
&lt;br /&gt;
    # Crearea unei liste pentru a stoca cuvintele modificate&lt;br /&gt;
    cuvinte_modificate = []&lt;br /&gt;
&lt;br /&gt;
    # Parcurgerea cuvintelor și eliminarea literei din mijloc a fiecărui cuvânt cu număr impar de litere&lt;br /&gt;
    for cuvant in cuvinte:&lt;br /&gt;
        if len(cuvant) % 2 == 1 and len(cuvant) &amp;gt;= 3:&lt;br /&gt;
            mijloc = len(cuvant) // 2&lt;br /&gt;
            cuvant_nou = cuvant[:mijloc] + cuvant[mijloc + 1:]&lt;br /&gt;
            cuvinte_modificate.append(cuvant_nou)&lt;br /&gt;
        else:&lt;br /&gt;
            cuvinte_modificate.append(cuvant)&lt;br /&gt;
&lt;br /&gt;
    # Verificarea dacă există cuvinte modificate&lt;br /&gt;
    if cuvinte_modificate == cuvinte:&lt;br /&gt;
        print(&amp;quot;nu exista&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot; &amp;quot;.join(cuvinte_modificate))&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0810_-_Nr_A&amp;diff=8003</id>
		<title>0810 - Nr A</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0810_-_Nr_A&amp;diff=8003"/>
		<updated>2023-12-13T15:33:17Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații. Înaintea primului cuvânt nu există spații, și nici după ultimul. Să se determine numărul de cuvinte din șir în care apare litera &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039;. == Date de intrare == Programul va citi de la tastatură şirul dat. == Date de ieșire == Programul va afişa pe ecran numărul de cuvinte determinat. == Restricţii şi preciză...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații. Înaintea primului cuvânt nu există spații, și nici după ultimul. Să se determine numărul de cuvinte din șir în care apare litera &#039;&#039;&#039;a&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul va citi de la tastatură şirul dat.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afişa pe ecran numărul de cuvinte determinat.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* șirul dat va conține cel mult &#039;&#039;&#039;70&#039;&#039;&#039; caractere, litere mici ale alfabetului englez și spații&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 voi sustine      examenul la   informatica&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 voi sustine      examenul LA   informatica&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 70 or not all(c.islower() or c.isspace() for c in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Separarea șirului în cuvinte&lt;br /&gt;
    cuvinte = sir.split()&lt;br /&gt;
&lt;br /&gt;
    # Calcularea numărului de cuvinte care conțin litera &#039;a&#039;&lt;br /&gt;
    numar_cuvinte = sum(&#039;a&#039; in cuvant for cuvant in cuvinte)&lt;br /&gt;
&lt;br /&gt;
    # Afișarea numărului de cuvinte&lt;br /&gt;
    print(numar_cuvinte)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0232_-_Eliminare_Numere&amp;diff=8002</id>
		<title>0232 - Eliminare Numere</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0232_-_Eliminare_Numere&amp;diff=8002"/>
		<updated>2023-12-13T15:27:38Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Să se scrie un program care citeşte de la tastatură un şir de cel mult &amp;#039;&amp;#039;&amp;#039;100&amp;#039;&amp;#039;&amp;#039; de caractere,format din cuvinte şi numere, separate prin unul sau mai multe spații. Cuvintele sunt formate numai din litere ale alfabetului englez. Toate numerele sunt reale, pozitive şi sunt formate numai din parte întreagă sau din parte întreagă şi parte fracționară, separate prin punctul zecimal (.).  Programul va elimina din şir toate numerele care au parte frac...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citeşte de la tastatură un şir de cel mult &#039;&#039;&#039;100&#039;&#039;&#039; de caractere,format din cuvinte şi numere, separate prin unul sau mai multe spații. Cuvintele sunt formate numai din litere ale alfabetului englez. Toate numerele sunt reale, pozitive şi sunt formate numai din parte întreagă sau din parte întreagă şi parte fracționară, separate prin punctul zecimal (.).&lt;br /&gt;
&lt;br /&gt;
Programul va elimina din şir toate numerele care au parte fracționară.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citeşte de la tastatură un şir de cel mult &#039;&#039;&#039;100&#039;&#039;&#039; caractere.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul afişează pe ecran şirul obţinut prin eliminarea numerelor care au parte fracționară.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Reprezentat  cu 4 zecimale PI este 3.1415 si e este 2.7182&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 Reprezentat  cu 4 zecimale PI este  si e este &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Loremipsumdolorsitamet,consecteturadipiscingelit.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Crearea unui pattern regex pentru a găsi numerele cu parte fracționară&lt;br /&gt;
    pattern = r&#039;\b\d+\.\d+\b&#039;&lt;br /&gt;
&lt;br /&gt;
    # Înlocuirea numerelor cu parte fracționară cu un șir gol&lt;br /&gt;
    sir_nou = re.sub(pattern, &#039;&#039;, sir)&lt;br /&gt;
&lt;br /&gt;
    # Afișarea noului șir&lt;br /&gt;
    print(sir_nou)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0200_-_Eliminare_Subsir_1&amp;diff=8001</id>
		<title>0200 - Eliminare Subsir 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0200_-_Eliminare_Subsir_1&amp;diff=8001"/>
		<updated>2023-12-13T15:23:24Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se dau două şiruri de caractere &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;. Să se elimine din &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039; toate apariţiile lui &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;. == Date de intrare == Programul citește de la tastatură cele două şiruri, &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039;, respectiv &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;, separate prin caracterul &amp;#039;&amp;#039;&amp;#039;NewLine&amp;#039;&amp;#039;&amp;#039;. == Date de ieșire == Programul afișează pe ecran şirul &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039;, obţinut după transformarea cerută. == Restricţii şi precizări == * cele două şiruri conţin cel mult &amp;#039;&amp;#039;&amp;#039;255&amp;#039;&amp;#039;&amp;#039; caractere. == Exemp...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dau două şiruri de caractere &#039;&#039;&#039;s&#039;&#039;&#039; şi &#039;&#039;&#039;t&#039;&#039;&#039;. Să se elimine din &#039;&#039;&#039;s&#039;&#039;&#039; toate apariţiile lui &#039;&#039;&#039;t&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură cele două şiruri, &#039;&#039;&#039;s&#039;&#039;&#039;, respectiv &#039;&#039;&#039;t&#039;&#039;&#039;, separate prin caracterul &#039;&#039;&#039;NewLine&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul afișează pe ecran şirul &#039;&#039;&#039;s&#039;&#039;&#039;, obţinut după transformarea cerută.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* cele două şiruri conţin cel mult &#039;&#039;&#039;255&#039;&#039;&#039; caractere.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 ana si mariana canta la nai&lt;br /&gt;
 na&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 ana si mariana canta la i&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Loremipsumdolorsitamet,consecteturadipiscingelit.Nullafacilisi.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.Nullamelementumleoacorcicongue,infringillanisleuismod.Sedaliquet,elit eupellentesqueaccumsanjusitocursuslacus,idhendreritnisl.&lt;br /&gt;
&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirurilor de la tastatură&lt;br /&gt;
    s = input().strip()&lt;br /&gt;
    t = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirurile respectă restricțiile&lt;br /&gt;
    if len(s) &amp;gt; 255 or len(t) &amp;gt; 255:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Găsirea ultimei apariții a lui t în s&lt;br /&gt;
    pozitie = s.rfind(t)&lt;br /&gt;
&lt;br /&gt;
    # Verificarea dacă t a fost găsit în s&lt;br /&gt;
    if pozitie != -1:&lt;br /&gt;
        # Eliminarea ultimei apariții a lui t din s&lt;br /&gt;
        s_nou = s[:pozitie] + s[pozitie + len(t):]&lt;br /&gt;
    else:&lt;br /&gt;
        s_nou = s&lt;br /&gt;
&lt;br /&gt;
    # Afișarea noului șir&lt;br /&gt;
    print(s_nou)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0199_-_Eliminare_Subsir&amp;diff=8000</id>
		<title>0199 - Eliminare Subsir</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0199_-_Eliminare_Subsir&amp;diff=8000"/>
		<updated>2023-12-13T15:19:35Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se dau două şiruri de caractere &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;. Să se elimine din &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039; toate apariţiile lui &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;. == Date de intrare == Programul citește de la tastatură cele două şiruri, &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039;, respectiv &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;, separate prin caracterul &amp;#039;&amp;#039;&amp;#039;NewLine&amp;#039;&amp;#039;&amp;#039;. == Date de ieșire == Programul afișează pe ecran şirul &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039;, obţinut după transformarea cerută. == Restricţii şi precizări == * cele două şiruri conţin cel mult &amp;#039;&amp;#039;&amp;#039;255&amp;#039;&amp;#039;&amp;#039; caractere. * apari...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dau două şiruri de caractere &#039;&#039;&#039;s&#039;&#039;&#039; şi &#039;&#039;&#039;t&#039;&#039;&#039;. Să se elimine din &#039;&#039;&#039;s&#039;&#039;&#039; toate apariţiile lui &#039;&#039;&#039;t&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură cele două şiruri, &#039;&#039;&#039;s&#039;&#039;&#039;, respectiv &#039;&#039;&#039;t&#039;&#039;&#039;, separate prin caracterul &#039;&#039;&#039;NewLine&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul afișează pe ecran şirul &#039;&#039;&#039;s&#039;&#039;&#039;, obţinut după transformarea cerută.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* cele două şiruri conţin cel mult &#039;&#039;&#039;255&#039;&#039;&#039; caractere.&lt;br /&gt;
* aparițiile șirului &#039;&#039;&#039;t&#039;&#039;&#039; în &#039;&#039;&#039;s&#039;&#039;&#039; nu se suprapun&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 ana si mariana canta la nai&lt;br /&gt;
 na&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 a si maria canta la i&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Loremipsumdolorsitamet,consecteturadipiscingelit.Nullafacilisi.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.Nullamelementumleoacorcicongue,infringillanisleuismod.Sedaliquet,elit eupellentesqueaccumsanjusitocursuslacus,idhendreritnisl.&lt;br /&gt;
&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirurilor de la tastatură&lt;br /&gt;
    s = input().strip()&lt;br /&gt;
    t = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirurile respectă restricțiile&lt;br /&gt;
    if len(s) &amp;gt; 255 or len(t) &amp;gt; 255:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Eliminarea tuturor aparițiilor lui t din s&lt;br /&gt;
    s_nou = s.replace(t, &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
    # Afișarea noului șir&lt;br /&gt;
    print(s_nou)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0188_-_Inlocuire_Cuvant&amp;diff=7999</id>
		<title>0188 - Inlocuire Cuvant</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0188_-_Inlocuire_Cuvant&amp;diff=7999"/>
		<updated>2023-12-13T15:12:47Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă:  Se dau două cuvinte &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039; şi o propoziţie &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039; formată numai din litere mici ale alfabetului englez şi spaţii. == Cerinţa == Să se modifice &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039;, înlocuind fiecare apariţie a cuvântului &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039; cu cuvântul &amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039;. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;inlocuirecuvantin.txt&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie cuvintele &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039;, separate printr-un spaţiu, iar pe a doua linie propoziţia &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039;. == Date de ieșire == Fişierul de ie...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Se dau două cuvinte &#039;&#039;&#039;a&#039;&#039;&#039; şi &#039;&#039;&#039;b&#039;&#039;&#039; şi o propoziţie &#039;&#039;&#039;s&#039;&#039;&#039; formată numai din litere mici ale alfabetului englez şi spaţii.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se modifice &#039;&#039;&#039;s&#039;&#039;&#039;, înlocuind fiecare apariţie a cuvântului &#039;&#039;&#039;a&#039;&#039;&#039; cu cuvântul &#039;&#039;&#039;b&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;inlocuirecuvantin.txt&#039;&#039;&#039; conţine pe prima linie cuvintele &#039;&#039;&#039;a&#039;&#039;&#039; şi &#039;&#039;&#039;b&#039;&#039;&#039;, separate printr-un spaţiu, iar pe a doua linie propoziţia &#039;&#039;&#039;s&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fişierul de ieşire &#039;&#039;&#039;inlocuirecuvantout.txt&#039;&#039;&#039; va conţine pe prima linie propoziţia &#039;&#039;&#039;s&#039;&#039;&#039;, modificată în conformitate cu cerinţa.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* propoziţia &#039;&#039;&#039;s&#039;&#039;&#039; va avea cel mult &#039;&#039;&#039;100&#039;&#039;&#039; caractere&lt;br /&gt;
* cuvintele &#039;&#039;&#039;a&#039;&#039;&#039; şi &#039;&#039;&#039;b&#039;&#039;&#039; vor avea cel mult &#039;&#039;&#039;10&#039;&#039;&#039; caractere&lt;br /&gt;
* cuvintele sunt formate numai din litere mici ale alfabetului englez&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; inlocuirecuvantin.txt&lt;br /&gt;
 dar insa&lt;br /&gt;
 dar nu trebuie dar e mai bine astfel&lt;br /&gt;
; inlocuirecuvantout.txt&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 insa nu trebuie insa e mai bine astfel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; inlocuirecuvantin.txt&lt;br /&gt;
 dar neînsemnând&lt;br /&gt;
 dar nu trebuie dar e mai bine astfel&lt;br /&gt;
; inlocuirecuvantout.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea cuvintelor și a propoziției din fișierul &#039;inlocuirecuvant.in&#039;&lt;br /&gt;
    with open(&#039;inlocuirecuvantin.txt&#039;, &#039;r&#039;) as f:&lt;br /&gt;
        a, b = f.readline().strip().split()&lt;br /&gt;
        s = f.readline().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă cuvintele și propoziția respectă restricțiile&lt;br /&gt;
    if len(a) &amp;gt; 10 or len(b) &amp;gt; 10 or len(s) &amp;gt; 100 or not (a.isalpha()&lt;br /&gt;
    and b.isalpha() and all(c.isalpha() or c.isspace() for c in s)):&lt;br /&gt;
        result = &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    else:&lt;br /&gt;
        result = &amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        # Înlocuirea fiecărei apariții a cuvântului a cu cuvântul b în propoziție&lt;br /&gt;
        s_noua = s.replace(a, b)&lt;br /&gt;
        result += &amp;quot;\n&amp;quot; + s_noua&lt;br /&gt;
&lt;br /&gt;
    # Scrierea rezultatului în fișierul &#039;inlocuirecuvant.out&#039;&lt;br /&gt;
    with open(&#039;inlocuirecuvantout.txt&#039;, &#039;w&#039;) as f:&lt;br /&gt;
        f.write(result)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0156_-_Eliminare_1&amp;diff=7998</id>
		<title>0156 - Eliminare 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0156_-_Eliminare_1&amp;diff=7998"/>
		<updated>2023-12-13T14:59:41Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Scrieţi un program care citeşte de la tastatură un şir de cel mult 50 de caractere (cifre, litere ale alfabetului englez şi spaţii; şirul conţine cel puţin o literă), apoi construieşte în memorie şi afişează pe ecran şirul de caractere obţinut din şirul citit prin eliminarea tuturor caracterelor care nu sunt litere. == Date de intrare == Programul citeşte de la tastatură un şir de cel mult 50 de caractere. == Date de ieșire == Programul va...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Scrieţi un program care citeşte de la tastatură un şir de cel mult 50 de caractere (cifre, litere ale alfabetului englez şi spaţii; şirul conţine cel puţin o literă), apoi construieşte în memorie şi afişează pe ecran şirul de caractere obţinut din şirul citit prin eliminarea tuturor caracterelor care nu sunt litere.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citeşte de la tastatură un şir de cel mult 50 de caractere.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afişa pe ecran şirul obţinut din şirul citit prin eliminarea tuturor caracterelor care nu sunt litere.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Pe 12 mergem la munte&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 Pemergemlamunte&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Loremipsumdolorsitamet,consecteturadipiscingelit.Vestibulumeuismodnequeeumetusrhoncus.&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 50 or not any(caracter.isalpha() for caracter in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Crearea unui nou șir prin eliminarea tuturor caracterelor care nu sunt litere&lt;br /&gt;
    sir_nou = &#039;&#039;.join(caracter for caracter in sir if caracter.isalpha())&lt;br /&gt;
&lt;br /&gt;
    # Afișarea noului șir&lt;br /&gt;
    print(sir_nou)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2686_-_ASCII_Comp&amp;diff=7997</id>
		<title>2686 - ASCII Comp</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2686_-_ASCII_Comp&amp;diff=7997"/>
		<updated>2023-12-13T14:41:27Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Numim &amp;#039;&amp;#039;&amp;#039;cuvânt&amp;#039;&amp;#039;&amp;#039; un șir de caractere care nu conține spații și conține cel puțin o literă. Numim &amp;#039;&amp;#039;&amp;#039;valoarea ASCII&amp;#039;&amp;#039;&amp;#039; a unui cuvânt suma codurilor ASCII ale caracterelor care fac parte din acel cuvânt.  Se dă un șir de caractere, care conține litere mici și mari ale alfabetului englez, spații, cifre și alte simboluri. Să se afișeze pe câte un rând valoarea ASCII și cuvintele care au acea valoare, în ordinea crescătoare a valorilor ASCII...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Numim &#039;&#039;&#039;cuvânt&#039;&#039;&#039; un șir de caractere care nu conține spații și conține cel puțin o literă. Numim &#039;&#039;&#039;valoarea ASCII&#039;&#039;&#039; a unui cuvânt suma codurilor ASCII ale caracterelor care fac parte din acel cuvânt.&lt;br /&gt;
&lt;br /&gt;
Se dă un șir de caractere, care conține litere mici și mari ale alfabetului englez, spații, cifre și alte simboluri. Să se afișeze pe câte un rând valoarea ASCII și cuvintele care au acea valoare, în ordinea crescătoare a valorilor ASCII. Cuvintele cu aceeași valoare a codurilor ASCII sunt afișate pe aceeași linie cu spații între ele în ordinea în care apar în șir.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură șirul de caractere.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran pe câte un rând valoarea ASCII și cuvintele care au acea valoare separate printr-un spațiu, în ordine crescătoare a valorilor codurilor ASCII. Dacă nu există niciun cuvânt în șirul dat se va afișa &#039;&#039;&#039;NU EXISTA&#039;&#039;&#039;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* șirul de caractere va avea maximum 255 de caractere.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
    ana   rem      abc    ad01           22222,    &lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 294 abc ad01&lt;br /&gt;
 304 ana&lt;br /&gt;
 324 rem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Loremipsumdolorsitamet,consecteturadipiscingelit.Nullafacilisi.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.Nullamelementumleoacorcicongue,infringillanisleuismod.Sedaliquet,elit eupellentesqueaccumsanjusitocursuslacus,idhendreritnisl. &lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 255:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    # Separarea șirului în cuvinte&lt;br /&gt;
    cuvinte = sir.split()&lt;br /&gt;
&lt;br /&gt;
    # Crearea unui dicționar pentru a stoca cuvintele și valorile lor ASCII&lt;br /&gt;
    valori_ascii = {}&lt;br /&gt;
&lt;br /&gt;
    # Calcularea valorii ASCII pentru fiecare cuvânt și adăugarea acestuia în dicționar&lt;br /&gt;
    for cuvant in cuvinte:&lt;br /&gt;
        if any(caracter.isalpha() for caracter in cuvant):&lt;br /&gt;
            valoare_ascii = sum(ord(caracter) for caracter in cuvant)&lt;br /&gt;
            if valoare_ascii not in valori_ascii:&lt;br /&gt;
                valori_ascii[valoare_ascii] = []&lt;br /&gt;
            valori_ascii[valoare_ascii].append(cuvant)&lt;br /&gt;
&lt;br /&gt;
    # Verificarea dacă există cuvinte în dicționar&lt;br /&gt;
    if not valori_ascii:&lt;br /&gt;
        print(&amp;quot;NU EXISTA&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Afișarea valorilor ASCII și a cuvintelor în ordine crescătoare a valorilor ASCII&lt;br /&gt;
    for valoare in sorted(valori_ascii):&lt;br /&gt;
        print(valoare, &#039; &#039;.join(valori_ascii[valoare]))&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
&#039;&#039;&#039;ana&#039;&#039;&#039; are valoarea &#039;&#039;&#039;304&#039;&#039;&#039;, &#039;&#039;&#039;rem&#039;&#039;&#039; are valoarea &#039;&#039;&#039;324&#039;&#039;&#039;, &#039;&#039;&#039;abc&#039;&#039;&#039; și &#039;&#039;&#039;ad01&#039;&#039;&#039; au valoarea &#039;&#039;&#039;294&#039;&#039;&#039;, iar &#039;&#039;&#039;22222&#039;&#039;&#039;, nu este cuvânt pentru ca nu conține nicio literă; s-au afișat cuvintele în ordine crescătoare a codurilor &#039;&#039;&#039;ASCII&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0137_-_Afisare_Litere&amp;diff=7996</id>
		<title>0137 - Afisare Litere</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0137_-_Afisare_Litere&amp;diff=7996"/>
		<updated>2023-12-13T14:35:38Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Să se scrie un program care citește un șir de caractere și afișează o singură dată literele mici din șir în ordinea în care apar în șir. == Date de intrare == Programul citește de la tastatură o un șir de cel mult &amp;#039;&amp;#039;&amp;#039;255&amp;#039;&amp;#039;&amp;#039; caractere. == Date de ieșire == Programul afișează pe ecran, separate prin câte un spațiu, literele mici din sir, în ordinea în care apar în șir. == Restricţii şi precizări == * șirul va conține cel puțin o lit...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește un șir de caractere și afișează o singură dată literele mici din șir în ordinea în care apar în șir.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură o un șir de cel mult &#039;&#039;&#039;255&#039;&#039;&#039; caractere.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul afișează pe ecran, separate prin câte un spațiu, literele mici din sir, în ordinea în care apar în șir.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* șirul va conține cel puțin o literă mică&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Ana are mere&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 n a r e m&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 ANA ARE MERE&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 255 or not any(caracter.islower() for caracter in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Crearea unui set pentru a stoca literele mici unice&lt;br /&gt;
    litere_unice = set()&lt;br /&gt;
&lt;br /&gt;
    # Parcurgerea șirului și adăugarea literelor mici unice în set&lt;br /&gt;
    for caracter in sir:&lt;br /&gt;
        if caracter.islower() and caracter not in litere_unice:&lt;br /&gt;
            litere_unice.add(caracter)&lt;br /&gt;
            print(caracter, end=&#039; &#039;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2953_-_Inserare_Char&amp;diff=7995</id>
		<title>2953 - Inserare Char</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2953_-_Inserare_Char&amp;diff=7995"/>
		<updated>2023-12-13T14:29:23Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Scrieți un program care citește un cuvânt cu cel mult &amp;#039;&amp;#039;&amp;#039;15&amp;#039;&amp;#039;&amp;#039; litere mici ale alfabetului englez și apoi un text cu cel mult &amp;#039;&amp;#039;&amp;#039;255&amp;#039;&amp;#039;&amp;#039; de caractere (cuvinte formate din litere mici ale alfabetului englez separate prin unul sau mai multe spații) și care afișează șirul obținut prin inserarea în text a caracterului &amp;#039;&amp;#039;&amp;#039;?&amp;#039;&amp;#039;&amp;#039; după fiecare apariție a cuvântului citit. Dacă în text nu apare cuvântul citit, se va afișa mesajul &amp;#039;&amp;#039;&amp;#039;NU APARE&amp;#039;&amp;#039;&amp;#039;. == Date...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Scrieți un program care citește un cuvânt cu cel mult &#039;&#039;&#039;15&#039;&#039;&#039; litere mici ale alfabetului englez și apoi un text cu cel mult &#039;&#039;&#039;255&#039;&#039;&#039; de caractere (cuvinte formate din litere mici ale alfabetului englez separate prin unul sau mai multe spații) și care afișează șirul obținut prin inserarea în text a caracterului &#039;&#039;&#039;?&#039;&#039;&#039; după fiecare apariție a cuvântului citit. Dacă în text nu apare cuvântul citit, se va afișa mesajul &#039;&#039;&#039;NU APARE&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;inserarecharin.txt&#039;&#039;&#039; conține pe prima linie un cuvânt, iar pe a doua linie un text.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;inserarecharout.txt&#039;&#039;&#039; va conține textul modificat prin inserarea caracterului &#039;&#039;&#039;?&#039;&#039;&#039; după fiecare apariție a cuvântului citit, sau mesajul &#039;&#039;&#039;NU APARE&#039;&#039;&#039;&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* textul va avea cel mult 255 de caractere litere mici din alfabetul englez și spații;&lt;br /&gt;
* cuvântul va avea cel mult 15 caractere, doar litere mici ale alfabetului englez.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; inserarecharin.txt&lt;br /&gt;
 examenul&lt;br /&gt;
 examenul de bacalaureat si examenul de atestat&lt;br /&gt;
; inserarecharout.txt&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 examenul? de bacalaureat si examenul? de atestat&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; inserarecharin.txt&lt;br /&gt;
 EXAMENUL&lt;br /&gt;
 examenul de bacalaureat si examenul de atestat&lt;br /&gt;
; inserarecharout.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea cuvântului și a textului din fișierul &#039;inserarechar.in&#039;&lt;br /&gt;
    with open(&#039;inserarecharin.txt&#039;, &#039;r&#039;) as f:&lt;br /&gt;
        cuvant = f.readline().strip()&lt;br /&gt;
        text = f.readline().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă cuvântul și textul respectă restricțiile&lt;br /&gt;
    if len(cuvant) &amp;gt; 15 or len(text) &amp;gt; 255:&lt;br /&gt;
        result = &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    elif any(not caracter.islower() and not caracter.isspace() for caracter in cuvant + text):&lt;br /&gt;
        result = &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    else:&lt;br /&gt;
        result = &amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        # Inserarea caracterului &#039;?&#039; după fiecare apariție a cuvântului citit în text&lt;br /&gt;
        cuvinte = text.split()&lt;br /&gt;
        cuvinte_noi = [cuv + &#039;?&#039; if cuv == cuvant else cuv for cuv in cuvinte]&lt;br /&gt;
        text_nou = &#039; &#039;.join(cuvinte_noi)&lt;br /&gt;
&lt;br /&gt;
        # Verifică dacă cuvântul citit apare în text și adaugă rezultatul la variabila &#039;result&#039;&lt;br /&gt;
        if cuvant in cuvinte:&lt;br /&gt;
            result += &amp;quot;\n&amp;quot; + text_nou&lt;br /&gt;
        else:&lt;br /&gt;
            result += &amp;quot;\nNU APARE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Scrierea rezultatului în fișierul &#039;inserarechar.out&#039;&lt;br /&gt;
    with open(&#039;inserarecharout.txt&#039;, &#039;w&#039;) as f:&lt;br /&gt;
        f.write(result)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0136_-_Numarare_Cuvinte&amp;diff=7994</id>
		<title>0136 - Numarare Cuvinte</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0136_-_Numarare_Cuvinte&amp;diff=7994"/>
		<updated>2023-12-13T14:19:18Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Să se scrie un program care citește o propoziție și determină numărul de cuvinte din propoziție care încep și se termină cu vocală. == Date de intrare == Programul citește de la tastatură o propoziție. == Date de ieșire == Programul afișează pe ecran valoarea cerută. == Restricţii şi precizări == * propoziția va conține cel mult &amp;#039;&amp;#039;&amp;#039;150&amp;#039;&amp;#039;&amp;#039; de caractere; * propoziția conține doar litere ale alfabetului englez și spații * se consideră v...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește o propoziție și determină numărul de cuvinte din propoziție care încep și se termină cu vocală.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură o propoziție.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul afișează pe ecran valoarea cerută.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* propoziția va conține cel mult &#039;&#039;&#039;150&#039;&#039;&#039; de caractere;&lt;br /&gt;
* propoziția conține doar litere ale alfabetului englez și spații&lt;br /&gt;
* se consideră vocale caracterele din mulțimea &#039;&#039;&#039;{a,e,i,o,u,A,E,I,O,U}&#039;&#039;&#039;&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Eratostene a sugerat ca anii bisecti se repeta la fiecare patru ani&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Catalin1234!&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea propoziției de la tastatură&lt;br /&gt;
    propozitie = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă propoziția respectă restricțiile&lt;br /&gt;
    if len(propozitie) &amp;gt; 150:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(not caracter.isalpha() and not caracter.isspace() for caracter in propozitie):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Determinarea numărului de cuvinte din propoziție care încep și se termină cu vocală&lt;br /&gt;
    vocale = &#039;aeiouAEIOU&#039;&lt;br /&gt;
    cuvinte = propozitie.split()&lt;br /&gt;
    cuvinte_vocale = [cuvant for cuvant in cuvinte if cuvant[0] in vocale and cuvant[-1] in vocale]&lt;br /&gt;
&lt;br /&gt;
    # Afișarea numărului de cuvinte care încep și se termină cu vocală&lt;br /&gt;
    print(len(cuvinte_vocale))&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
Cuvintele din propoziție care respectă proprietatea precizată sunt: &#039;&#039;&#039;Eratostene, a, anii, ani&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2673_-_Swap_Cuv&amp;diff=7993</id>
		<title>2673 - Swap Cuv</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2673_-_Swap_Cuv&amp;diff=7993"/>
		<updated>2023-12-13T14:14:06Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se dă un şir de caractere care conține cuvinte formate din litere mici și mari ale alfabetului englez. Cuvintele sunt separate prin orice caractere imprimabile care nu sunt litere (cu codurile ASCII mai mari sau egale cu 32). Să se afișeze cuvintele pe cate o linie în felul următor: ;  Primul  Ultimul  Al Doilea  Penultimul  ... == Date de intrare == Programul citește de la tastatură șirul dat. == Date de ieșire == Programul va afișa pe ecran cate...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă un şir de caractere care conține cuvinte formate din litere mici și mari ale alfabetului englez. Cuvintele sunt separate prin orice caractere imprimabile care nu sunt litere (cu codurile ASCII mai mari sau egale cu 32). Să se afișeze cuvintele pe cate o linie în felul următor:&lt;br /&gt;
;&lt;br /&gt;
 Primul&lt;br /&gt;
 Ultimul&lt;br /&gt;
 Al Doilea&lt;br /&gt;
 Penultimul&lt;br /&gt;
 ...&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură șirul dat.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran cate o linie cuvintele în funcție de cerintă.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* propoziția va conține cel mult 255 de caractere&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 divide and conquer / devide et impera.&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 divide&lt;br /&gt;
 impera&lt;br /&gt;
 and&lt;br /&gt;
 et&lt;br /&gt;
 conquer&lt;br /&gt;
 devide&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Loremipsumdolorsitamet,consecteturadipiscingelit.Nullafacilisi.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.Nullamelementumleoacorcicongue,infringillanisleuismod.Sedaliquet,elit eupellentesqueaccumsanjusitocursuslacus,idhendreritnisl.&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de caractere de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 255:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    # Afișarea mesajului de confirmare&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Separarea cuvintelor din șir&lt;br /&gt;
    cuvinte = re.findall(r&#039;\b\w+\b&#039;, sir)&lt;br /&gt;
&lt;br /&gt;
    # Afișarea cuvintelor în ordinea cerută&lt;br /&gt;
    i = 0&lt;br /&gt;
    j = len(cuvinte) - 1&lt;br /&gt;
    while i &amp;lt;= j:&lt;br /&gt;
        if i == j:&lt;br /&gt;
            print(cuvinte[i])&lt;br /&gt;
        else:&lt;br /&gt;
            print(cuvinte[i])&lt;br /&gt;
            print(cuvinte[j])&lt;br /&gt;
        i += 1&lt;br /&gt;
        j -= 1&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0110_-_Eliminare&amp;diff=7992</id>
		<title>0110 - Eliminare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0110_-_Eliminare&amp;diff=7992"/>
		<updated>2023-12-13T14:00:41Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Să se scrie un program care citeşte de la tastatură un cuvânt şi afişează pe ecran toate cuvintele care se pot obţine prin eliminarea unei singure litere din cuvântul citit. == Date de intrare == Programul citeşte de la tastatură un cuvânt de cel mult &amp;#039;&amp;#039;&amp;#039;100&amp;#039;&amp;#039;&amp;#039; caractere. == Date de ieșire == Programul afişează pe ecran toate cuvintele care se pot obţine prin eliminarea unei singure litere din cuvântul citit, fiecare pe o linie == Restricţii...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citeşte de la tastatură un cuvânt şi afişează pe ecran toate cuvintele care se pot obţine prin eliminarea unei singure litere din cuvântul citit.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citeşte de la tastatură un cuvânt de cel mult &#039;&#039;&#039;100&#039;&#039;&#039; caractere.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul afişează pe ecran toate cuvintele care se pot obţine prin eliminarea unei singure litere din cuvântul citit, fiecare pe o linie&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* cuvântul citit este alcătuit din litere mici ale alfabetului englez&lt;br /&gt;
* primul cuvânt afişat va fi cel obţinut prin eliminarea primei litere, al doilea va fi cel obţinut prin eliminarea celei de-a doua litere, etc.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 caiet&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 aiet&lt;br /&gt;
 ciet&lt;br /&gt;
 caet&lt;br /&gt;
 cait&lt;br /&gt;
 caie&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 CAIET&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea cuvântului de la tastatură&lt;br /&gt;
    cuvant = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă cuvântul respectă restricțiile&lt;br /&gt;
    if len(cuvant) &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(not caracter.islower() for caracter in cuvant):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    # Afișarea mesajului de confirmare&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Afișarea cuvintelor obținute prin eliminarea unei singure litere din cuvântul citit&lt;br /&gt;
    for i in range(len(cuvant)):&lt;br /&gt;
        print(cuvant[:i] + cuvant[i+1:])&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0096_-_Palindrom_Maxim&amp;diff=7954</id>
		<title>0096 - Palindrom Maxim</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0096_-_Palindrom_Maxim&amp;diff=7954"/>
		<updated>2023-12-12T20:30:30Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Să se scrie un program care citește o propoziție și determină cuvântul &amp;#039;&amp;#039;&amp;#039;palindrom&amp;#039;&amp;#039; de lungime maximă. == Date de intrare == Programul citește de la tastatură o propoziție alcătuită din litere mici sau mari ale alfabetului englez, cifre, semne de punctuație și spații. == Date de ieșire == Programul afișează pe ecran cel mai lung cuvânt palindrom. == Restricţii şi precizări == * propoziția va conține cel mult &amp;#039;&amp;#039;&amp;#039;255&amp;#039;&amp;#039;&amp;#039; de caractere; * c...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Să se scrie un program care citește o propoziție și determină cuvântul &#039;&#039;&#039;palindrom&#039;&#039; de lungime maximă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură o propoziție alcătuită din litere mici sau mari ale alfabetului englez, cifre, semne de punctuație și spații.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul afișează pe ecran cel mai lung cuvânt palindrom.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* propoziția va conține cel mult &#039;&#039;&#039;255&#039;&#039;&#039; de caractere;&lt;br /&gt;
* cuvintele conțin doar litere și/sau cifre și conțin cel mult &#039;&#039;&#039;20&#039;&#039;&#039; de caractere;&lt;br /&gt;
* dacă în propoziție există mai multe cuvinte palindrom de lungime maximă, se va afișa primul dintre ele;&lt;br /&gt;
* semnele de punctuație din propoziție pot fi &#039;&#039;&#039;:;.,&#039;&#039;&#039;&lt;br /&gt;
* nu se face distincție între literele mari și cele mici;&lt;br /&gt;
* pentru toate testele date există soluție&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 121 prieteni analizeaza Un capac; aeriSIrea    radar&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 aeriSIrea&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 121 prieteni analizeazacevafoarteinteresant Un capac; aeriSIrea    radar&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import string&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea propoziției de la tastatură&lt;br /&gt;
    propozitie = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă propoziția respectă restricțiile&lt;br /&gt;
    if len(propozitie) &amp;gt; 255:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(len(cuvant) &amp;gt; 20 for cuvant in propozitie.split()):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Eliminarea semnelor de punctuație din propoziție&lt;br /&gt;
    propozitie = propozitie.translate(str.maketrans(&#039;&#039;, &#039;&#039;, string.punctuation))&lt;br /&gt;
&lt;br /&gt;
    # Căutarea celui mai lung cuvânt palindrom&lt;br /&gt;
    cuvinte = propozitie.split()&lt;br /&gt;
    cuvinte_palindrom = [cuvant for cuvant in cuvinte if cuvant.lower() == cuvant.lower()[::-1]]&lt;br /&gt;
    cuvant_maxim = max(cuvinte_palindrom, key=len) if cuvinte_palindrom else &amp;quot;nu exista&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Afișarea cuvântului obținut&lt;br /&gt;
    print(cuvant_maxim)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2304_-_Cuvinte_7&amp;diff=7953</id>
		<title>2304 - Cuvinte 7</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2304_-_Cuvinte_7&amp;diff=7953"/>
		<updated>2023-12-12T20:24:28Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinta == Scrieţi un program care citeşte de la tastatură, în această ordine, un număr natural &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, apoi n cuvinte, separate prin Enter, urmate de un număr natural &amp;#039;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;#039;. Numerele citite sunt din intervalul &amp;#039;&amp;#039;&amp;#039;[1,20]&amp;#039;&amp;#039;&amp;#039;, iar fiecare cuvânt este format din cel mult &amp;#039;&amp;#039;&amp;#039;20&amp;#039;&amp;#039;&amp;#039; de caractere, numai litere mici ale alfabetului englez. Cel puţin unul dintre cuvinte are &amp;#039;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;#039; litere.  Programul construiește în memorie, apoi afișează pe ecran, un șir care să...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinta ==&lt;br /&gt;
Scrieţi un program care citeşte de la tastatură, în această ordine, un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;, apoi n cuvinte, separate prin Enter, urmate de un număr natural &#039;&#039;&#039;k&#039;&#039;&#039;. Numerele citite sunt din intervalul &#039;&#039;&#039;[1,20]&#039;&#039;&#039;, iar fiecare cuvânt este format din cel mult &#039;&#039;&#039;20&#039;&#039;&#039; de caractere, numai litere mici ale alfabetului englez. Cel puţin unul dintre cuvinte are &#039;&#039;&#039;k&#039;&#039;&#039; litere.&lt;br /&gt;
&lt;br /&gt;
Programul construiește în memorie, apoi afișează pe ecran, un șir care să cuprindă cuvintele citite, separate prin câte un spațiu, astfel încât toate cele care au &#039;&#039;&#039;k&#039;&#039;&#039; litere să ocupe primele poziţii, iar celelalte să se regăsească în continuarea acestora, într-o ordine oarecare.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 5&lt;br /&gt;
 am&lt;br /&gt;
 un&lt;br /&gt;
 cires&lt;br /&gt;
 de&lt;br /&gt;
 mai&lt;br /&gt;
 2&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 am un de cires mai&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 3&lt;br /&gt;
 da&lt;br /&gt;
 acestcuvantesteunulfoartelungdoarpentrucontext&lt;br /&gt;
 2&lt;br /&gt;
 2&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea numărului n de la tastatură&lt;br /&gt;
    n = int(input().strip())&lt;br /&gt;
&lt;br /&gt;
    # Citirea cuvintelor de la tastatură&lt;br /&gt;
    cuvinte = [input().strip() for _ in range(n)]&lt;br /&gt;
&lt;br /&gt;
    # Citirea numărului k de la tastatură&lt;br /&gt;
    k = int(input().strip())&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă datele de intrare respectă restricțiile&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 20 or k &amp;lt; 1 or k &amp;gt; 20 or any(len(cuvant) &amp;gt; 20 or not cuvant.islower() for cuvant in cuvinte):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Separarea cuvintelor în funcție de lungimea lor&lt;br /&gt;
    cuvinte_k = [cuvant for cuvant in cuvinte if len(cuvant) == k]&lt;br /&gt;
    cuvinte_altele = [cuvant for cuvant in cuvinte if len(cuvant) != k]&lt;br /&gt;
&lt;br /&gt;
    # Construirea și afișarea șirului rezultat&lt;br /&gt;
    sir = &#039; &#039;.join(cuvinte_k + cuvinte_altele)&lt;br /&gt;
    print(sir)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
Există și alte soluții corecte.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2813_-_Note&amp;diff=7952</id>
		<title>2813 - Note</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2813_-_Note&amp;diff=7952"/>
		<updated>2023-12-12T20:14:35Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se consideră un text cu cel mult &amp;#039;&amp;#039;&amp;#039;100&amp;#039;&amp;#039;&amp;#039; de caractere, în care cuvintele sunt formate din litere mari ale alfabetului englez și sunt separate prin câte un spațiu.  Scrieți un program care citește de la tastatură un text de tipul menționat mai sus și afișează pe ecran, pe câte un rând, cuvintele care cuprind cel puțin o notă muzicală. Dacă nu există astfel de cuvinte, se afișează pe ecran mesajul &amp;#039;&amp;#039;&amp;#039;nu exista&amp;#039;&amp;#039;&amp;#039;. == Date de intrare == Prog...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se consideră un text cu cel mult &#039;&#039;&#039;100&#039;&#039;&#039; de caractere, în care cuvintele sunt formate din litere mari ale alfabetului englez și sunt separate prin câte un spațiu.&lt;br /&gt;
&lt;br /&gt;
Scrieți un program care citește de la tastatură un text de tipul menționat mai sus și afișează pe ecran, pe câte un rând, cuvintele care cuprind cel puțin o notă muzicală. Dacă nu există astfel de cuvinte, se afișează pe ecran mesajul &#039;&#039;&#039;nu exista&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură un text de tipul menționat.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran, pe câte un rând, cuvintele care cuprind cel puțin o notă muzicală. Dacă nu există astfel de cuvinte, se afișează pe ecran mesajul &#039;&#039;&#039;nu exista&#039;&#039;&#039;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* cuvintele vor fi afișate în ordinea din text&lt;br /&gt;
* notele muzicale sunt &#039;&#039;&#039;DO, RE, MI, FA, SOL, LA, SI&#039;&#039;&#039;.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 REMI DOMINO SI KHANHOO SUNT DENUMIRI DE JOCURI CE AU ASPECTE SIMILARE&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 REMI&lt;br /&gt;
 DOMINO&lt;br /&gt;
 SI&lt;br /&gt;
 DENUMIRI&lt;br /&gt;
 SIMILARE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 remi domino si khanhoo sunt denumiri de jocuri ce au aspecte similare&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de caractere de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(not caracter.isupper() and not caracter.isspace() for caracter in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Afișarea cuvintelor care cuprind cel puțin o notă muzicală&lt;br /&gt;
    note_muzicale = [&#039;DO&#039;, &#039;RE&#039;, &#039;MI&#039;, &#039;FA&#039;, &#039;SOL&#039;, &#039;LA&#039;, &#039;SI&#039;]&lt;br /&gt;
    cuvinte = sir.split()&lt;br /&gt;
    cuvinte_cu_note = [cuvant for cuvant in cuvinte if any(nota in cuvant for nota in note_muzicale)]&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă există cuvinte care cuprind cel puțin o notă muzicală și afișează rezultatul&lt;br /&gt;
    if cuvinte_cu_note:&lt;br /&gt;
        for cuvant in cuvinte_cu_note:&lt;br /&gt;
            print(cuvant)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;nu exista&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2803_-_Elim_P&amp;diff=7951</id>
		<title>2803 - Elim P</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2803_-_Elim_P&amp;diff=7951"/>
		<updated>2023-12-12T20:08:43Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se citește un număr &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039; și un șir de caractere &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039;, șirul conține cel mult &amp;#039;&amp;#039;&amp;#039;255&amp;#039;&amp;#039;&amp;#039; de litere mici ale alfabetului englez. Să se afișeze toate șirurile rezultate din eliminarea, pe rând, a fiecărei secvențe de &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039; caractere din &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039; == Date de intrare == Programul citește de la tastatură numărul &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039; pe prima linie și șirul &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039; pe cea de-a doua linie. == Date de ieșire == Programul va afișa pe ecran pe câte o linie, to...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se citește un număr &#039;&#039;&#039;p&#039;&#039;&#039; și un șir de caractere &#039;&#039;&#039;s&#039;&#039;&#039;, șirul conține cel mult &#039;&#039;&#039;255&#039;&#039;&#039; de litere mici ale alfabetului englez. Să se afișeze toate șirurile rezultate din eliminarea, pe rând, a fiecărei secvențe de &#039;&#039;&#039;p&#039;&#039;&#039; caractere din &#039;&#039;&#039;s&#039;&#039;&#039;&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;p&#039;&#039;&#039; pe prima linie și șirul &#039;&#039;&#039;s&#039;&#039;&#039; pe cea de-a doua linie.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran pe câte o linie, toate șirurile rezultate din eliminarea, pe rând, a fiecărei secvență de &#039;&#039;&#039;p&#039;&#039;&#039; caractere din &#039;&#039;&#039;s&#039;&#039;&#039;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; p &amp;amp;les; 255&lt;br /&gt;
* eliminările se fac de la stânga la dreapta&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 3&lt;br /&gt;
 adina&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 na&lt;br /&gt;
 aa&lt;br /&gt;
 ad&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 -1&lt;br /&gt;
 adina&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea numărului și a șirului de caractere de la tastatură&lt;br /&gt;
    p = int(input().strip())&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă datele de intrare respectă restricțiile&lt;br /&gt;
    if p &amp;lt; 1 or p &amp;gt; 255 or len(sir) &amp;gt; 255:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(not caracter.islower() for caracter in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Afișarea șirurilor rezultate din eliminarea, pe rând, a fiecărei secvențe de p caractere din s&lt;br /&gt;
    for i in range(len(sir) - p + 1):&lt;br /&gt;
        print(sir[:i] + sir[i+p:])&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0846_-_Dubluri&amp;diff=7950</id>
		<title>0846 - Dubluri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0846_-_Dubluri&amp;diff=7950"/>
		<updated>2023-12-12T20:03:00Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se dă un șir de caractere ce conține doar litere mici ale alfabetului englez. Să se afișeze cel mai lung subșir care apare de cel puțin două ori în șirul dat. == Date de intrare == Programul citește de la tastatură șirul dat. == Date de ieșire == Programul va afișa pe ecran cel mai lung subșir cu cel puțin două apariții. == Restricţii şi precizări == * șirul dat are cel mult &amp;#039;&amp;#039;&amp;#039;255&amp;#039;&amp;#039;&amp;#039; caractere * dacă există mai multe subșiruri de lung...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă un șir de caractere ce conține doar litere mici ale alfabetului englez. Să se afișeze cel mai lung subșir care apare de cel puțin două ori în șirul dat.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură șirul dat.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran cel mai lung subșir cu cel puțin două apariții.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* șirul dat are cel mult &#039;&#039;&#039;255&#039;&#039;&#039; caractere&lt;br /&gt;
* dacă există mai multe subșiruri de lungime maximă care apar de cel puțin două ori, se va afișa primul în ordine lexicografică.&lt;br /&gt;
* pentru toate datele de test există cel puțin un subșir din cel puțin două caractere, care se repetă&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 cbddccdaaddccaaddbccbbdbddd&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 aadd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Bunaziua&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de caractere de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 255:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(not caracter.islower() for caracter in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Căutarea celui mai lung subșir care apare de cel puțin două ori&lt;br /&gt;
    lungime_maxima = 0&lt;br /&gt;
    subșir_maxim = &#039;&#039;&lt;br /&gt;
    for i in range(len(sir)):&lt;br /&gt;
        for j in range(i+2, len(sir)+1):&lt;br /&gt;
            subșir = sir[i:j]&lt;br /&gt;
            if sir.count(subșir) &amp;gt;= 2 and len(subșir) &amp;gt; lungime_maxima:&lt;br /&gt;
                lungime_maxima = len(subșir)&lt;br /&gt;
                subșir_maxim = subșir&lt;br /&gt;
            elif len(subșir) == lungime_maxima and subșir &amp;lt; subșir_maxim:&lt;br /&gt;
                subșir_maxim = subșir&lt;br /&gt;
&lt;br /&gt;
    # Afișarea subșirului obținut&lt;br /&gt;
    print(subșir_maxim)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0891_-_Pasareste&amp;diff=7946</id>
		<title>0891 - Pasareste</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0891_-_Pasareste&amp;diff=7946"/>
		<updated>2023-12-12T19:51:04Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Limba păsărească este foarte simplă; și asemănătoare cu limba română! Un text scris în română se traduce în păsărește astfel: după fiecare vocală se inserează litera &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039; și vocala respectivă.  Se dă o propoziție scrisă în limba română. Să se traducă în păsărească. == Date de intrare == Programul citește de la tastatură un șir de caractere &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039;. == Date de ieșire == Programul va afișa pe ecran șirul &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;, reprezen...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Limba păsărească este foarte simplă; și asemănătoare cu limba română! Un text scris în română se traduce în păsărește astfel: după fiecare vocală se inserează litera &#039;&#039;&#039;p&#039;&#039;&#039; și vocala respectivă.&lt;br /&gt;
&lt;br /&gt;
Se dă o propoziție scrisă în limba română. Să se traducă în păsărească.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură un șir de caractere &#039;&#039;&#039;s&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran șirul &#039;&#039;&#039;t&#039;&#039;&#039;, reprezentând traducerea în păsărească a șirului &#039;&#039;&#039;s&#039;&#039;&#039;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* șirurile &#039;&#039;&#039;s&#039;&#039;&#039; și &#039;&#039;&#039;t&#039;&#039;&#039; vor avea cel mult &#039;&#039;&#039;255&#039;&#039;&#039; de caractere&lt;br /&gt;
* șirul &#039;&#039;&#039;s&#039;&#039;&#039; va conține litere mici ale alfabetului englez și spații&lt;br /&gt;
* vocalele sunt: &#039;&#039;&#039;aeiou&#039;&#039;&#039;&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 ana are mere&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 apanapa aparepe meperepe&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Aceasta este o propozitie&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de caractere de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 255:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(not caracter.islower() and not caracter.isspace() for caracter in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Traducerea în păsărească&lt;br /&gt;
    vocale = &#039;aeiou&#039;&lt;br /&gt;
    sir_pasareasca = &#039;&#039;.join([caracter + &#039;p&#039; + caracter if caracter in vocale else caracter for caracter in sir])&lt;br /&gt;
&lt;br /&gt;
    # Afișarea șirului obținut&lt;br /&gt;
    print(sir_pasareasca)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0609_-_Dublare_Vocale&amp;diff=7945</id>
		<title>0609 - Dublare Vocale</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0609_-_Dublare_Vocale&amp;diff=7945"/>
		<updated>2023-12-12T19:43:43Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se dă un şir format din cel mult &amp;#039;&amp;#039;&amp;#039;100&amp;#039;&amp;#039;&amp;#039; de caractere – litere mici ale alfabetului englez şi spaţii. Să se modifice acest şir prin dublarea fiecărei vocale. == Date de intrare == Programul citește de la tastatură şirul dat. == Date de ieșire == Programul va afișa pe ecran şirul obţinut în urma efectuării operaţiilor cerute. == Exemplu 1 == ; Intrare  problema aceea frumoasa ; Iesire  Datele de intrare corespund restrictiilor impuse  proobl...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă un şir format din cel mult &#039;&#039;&#039;100&#039;&#039;&#039; de caractere – litere mici ale alfabetului englez şi spaţii. Să se modifice acest şir prin dublarea fiecărei vocale.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură şirul dat.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran şirul obţinut în urma efectuării operaţiilor cerute.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 problema aceea frumoasa&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 proobleemaa aaceeeeaa fruumooaasaa&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 catalin12345&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de caractere de la tastatură&lt;br /&gt;
    sir = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(not caracter.islower() and not caracter.isspace() for caracter in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Dublarea fiecărei vocale din șir&lt;br /&gt;
    vocale = &#039;aeiou&#039;&lt;br /&gt;
    sir_dublat = &#039;&#039;.join([caracter*2 if caracter in vocale else caracter for caracter in sir])&lt;br /&gt;
&lt;br /&gt;
    # Afișarea șirului obținut&lt;br /&gt;
    print(sir_dublat)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1335_-_Caractere&amp;diff=7943</id>
		<title>1335 - Caractere</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1335_-_Caractere&amp;diff=7943"/>
		<updated>2023-12-12T19:38:51Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se dau &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039; șiruri de caractere. Sa se afișeze toate caracterele primului șir ce se găsesc și în al doilea. == Date de intrare == Programul citește de la tastatură &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039; șiruri de caractere, dispuse pe &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039; linii.. == Date de ieșire == Programul va afișa pe ecran toate caracterele primului șir ce se găsesc și în al doilea. == Restricţii şi precizări == * fiecare șir citit va conține cel mult 250 de caractere; * caracterele vor fi afi...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dau &#039;&#039;&#039;2&#039;&#039;&#039; șiruri de caractere. Sa se afișeze toate caracterele primului șir ce se găsesc și în al doilea.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură &#039;&#039;&#039;2&#039;&#039;&#039; șiruri de caractere, dispuse pe &#039;&#039;&#039;2&#039;&#039;&#039; linii..&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran toate caracterele primului șir ce se găsesc și în al doilea.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* fiecare șir citit va conține cel mult 250 de caractere;&lt;br /&gt;
* caracterele vor fi afișate în ordinea în care se găsesc în primul șir.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 asD&#039;&amp;quot;;*]!&lt;br /&gt;
 da&#039;;h&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 a&#039;;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Vestibulum euismod neque eu metus &lt;br /&gt;
 rhoncus, nec iaculis purus sollicitudin. Quisque condimentum, lacus id suscipit vestibulum, odio sem &lt;br /&gt;
 egestas nunc, vel aliquet purus erat nec elit. Nullam elementum leo ac orci congue, in fringilla nisl &lt;br /&gt;
 euismod. Sed aliquet, elit eu pellentesque accumsan, justo ex cursus lacus, id hendrerit nisl tortor ut &lt;br /&gt;
 nunc. Maecenas congue ligula non lacus dapibus bibendum. Fusce hendrerit tincidunt lacus, vel luctus purus &lt;br /&gt;
 auctor vel. Integer et metus eu neque commodo sodales. Vivamus vel nisi in elit luctus ullamcorper. &lt;br /&gt;
 Phasellus id augue nec velit tincidunt cursus.&lt;br /&gt;
 acestaesteuncuvant&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirurilor de caractere de la tastatură&lt;br /&gt;
    sir1 = input().strip()&lt;br /&gt;
    sir2 = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirurile respectă restricțiile&lt;br /&gt;
    if len(sir1) &amp;gt; 250 or len(sir2) &amp;gt; 250:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Obținerea listei de caractere din primul șir care se găsesc și în al doilea&lt;br /&gt;
    caractere = [caracter for caracter in sir1 if caracter in sir2]&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă există caractere în primul șir care se găsesc și în al doilea și afișează rezultatul&lt;br /&gt;
    if caractere:&lt;br /&gt;
        print(&#039;&#039;.join(caractere))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;nu exista&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3112_-_Bac_Cuvinte&amp;diff=7942</id>
		<title>3112 - Bac Cuvinte</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3112_-_Bac_Cuvinte&amp;diff=7942"/>
		<updated>2023-12-12T19:27:35Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Cerința Într-un text cu cel mult &amp;#039;&amp;#039;&amp;#039;100&amp;#039;&amp;#039;&amp;#039; de caractere cuvintele sunt formate numai din litere mari și mici ale alfabetului englez și sunt separate prin câte un spațiu. Scrieți un program care citește de la tastatură un text de tipul precizat, apoi un număr natural, &amp;#039;&amp;#039;&amp;#039;n, n∈[1,100)&amp;#039;&amp;#039;&amp;#039;, şi afişează pe ecran, pe linii separate, cuvintele din text care au exact &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; litere. Cuvintele sunt afișate în ordinea apariției lor în text, iar dacă n...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Cerința&lt;br /&gt;
Într-un text cu cel mult &#039;&#039;&#039;100&#039;&#039;&#039; de caractere cuvintele sunt formate numai din litere mari și mici ale alfabetului englez și sunt separate prin câte un spațiu. Scrieți un program care citește de la tastatură un text de tipul precizat, apoi un număr natural, &#039;&#039;&#039;n, n∈[1,100)&#039;&#039;&#039;, şi afişează pe ecran, pe linii separate, cuvintele din text care au exact &#039;&#039;&#039;n&#039;&#039;&#039; litere. Cuvintele sunt afișate în ordinea apariției lor în text, iar dacă nu există niciun astfel de cuvânt, se afișează pe ecran mesajul &#039;&#039;&#039;nu exista&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul textul dat, apoi numărul &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran cuvintele din text cu exact &#039;&#039;&#039;n&#039;&#039;&#039; litere, fiecare pe câte o linie.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; n &amp;amp;les; 100&lt;br /&gt;
* textul conține cel mult &#039;&#039;&#039;100&#039;&#039;&#039; de caractere; cuvintele sunt formate numai din litere mari și mici ale alfabetului englez și sunt separate prin câte un spațiu&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 Fat Frumos este cel mai viteaz&lt;br /&gt;
 6&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 Frumos&lt;br /&gt;
 viteaz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 catalin1234&lt;br /&gt;
 10&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea textului și a numărului de la tastatură&lt;br /&gt;
    text = input().strip()&lt;br /&gt;
    n = int(input().strip())&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă textul respectă restricțiile&lt;br /&gt;
    if len(text) &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(not cuvant.isalpha() for cuvant in text.split()):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(len(cuvant) &amp;gt; 100 for cuvant in text.split()):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Obținerea listei de cuvinte cu exact n litere&lt;br /&gt;
    cuvinte = [cuvant for cuvant in text.split() if len(cuvant) == n]&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă există cuvinte în text cu exact n litere și afișează rezultatul&lt;br /&gt;
    if cuvinte:&lt;br /&gt;
        for cuvant in cuvinte:&lt;br /&gt;
            print(cuvant)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;nu exista&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2797_-_Cuvinte_9&amp;diff=7941</id>
		<title>2797 - Cuvinte 9</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2797_-_Cuvinte_9&amp;diff=7941"/>
		<updated>2023-12-12T19:20:56Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Cerința Un text are cel mult &amp;#039;&amp;#039;&amp;#039;100&amp;#039;&amp;#039;&amp;#039; de caractere și este format din cuvinte, numere naturale și spații. Cuvintele sunt formate numai din litere mici ale alfabetului englez. Cuvintele și numerele sunt separate prin câte un spaţiu.  Scrieţi un program care citește de la tastatură un text de tipul menţionat mai sus și afișează pe ecran numărul din text care începe cu cea mai mare cifră. Dacă există mai multe astfel de numere, se afișează do...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Cerința&lt;br /&gt;
Un text are cel mult &#039;&#039;&#039;100&#039;&#039;&#039; de caractere și este format din cuvinte, numere naturale și spații. Cuvintele sunt formate numai din litere mici ale alfabetului englez. Cuvintele și numerele sunt separate prin câte un spaţiu.&lt;br /&gt;
&lt;br /&gt;
Scrieţi un program care citește de la tastatură un text de tipul menţionat mai sus și afișează pe ecran numărul din text care începe cu cea mai mare cifră. Dacă există mai multe astfel de numere, se afișează doar unul dintre acestea, iar dacă textul nu conține niciun număr, se afișează pe ecran mesajul &#039;&#039;&#039;nu exista&#039;&#039;&#039;.&lt;br /&gt;
Date de intrare&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură un text de tipul menționat mai sus.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran numărul din text care începe cu cea mai mare cifră sau mesajul &#039;&#039;&#039;nu exista&#039;&#039;&#039;, dacă textul nu conține niciun număr.&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 am 190 de nuci si 70 de castane&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 70&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 acestaesteuncuvantfoartelung carecontine1234&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea textului de la tastatură&lt;br /&gt;
    text = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă textul respectă restricțiile&lt;br /&gt;
    if len(text) &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(not cuvant.isalpha() and not cuvant.isdigit() for cuvant in text.split()):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if any(len(cuvant) &amp;gt; 10 for cuvant in text.split()):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Obținerea listei de numere&lt;br /&gt;
    numere = [int(cuvant) for cuvant in text.split() if cuvant.isdigit()]&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă există numere în text și afișează rezultatul&lt;br /&gt;
    if numere:&lt;br /&gt;
        print(max(numere, key=lambda numar: int(str(numar)[0])))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;nu exista&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0975_-_Cuvinte_2&amp;diff=7939</id>
		<title>0975 - Cuvinte 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0975_-_Cuvinte_2&amp;diff=7939"/>
		<updated>2023-12-12T19:11:10Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se dă o propoziție formată din litere mici ale alfabetului englez, spații și semnele de punctuație ,.. Determinați un cuvânt palindrom din propoziție, primul în ordine alfabetică. == Date de intrare == Programul citește de la tastatură propoziția dată. == Date de ieșire == Programul va afișa pe ecran cuvântul determinat, sau mesajul IMPOSIBIL, dacă în șir nu există niciun cuvânt palindrom. == Restricţii şi precizări == * propoziția ci...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă o propoziție formată din litere mici ale alfabetului englez, spații și semnele de punctuație ,.. Determinați un cuvânt palindrom din propoziție, primul în ordine alfabetică.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură propoziția dată.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran cuvântul determinat, sau mesajul IMPOSIBIL, dacă în șir nu există niciun cuvânt palindrom.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* propoziția citită va conține cel mult &#039;&#039;&#039;255&#039;&#039;&#039; de caractere&lt;br /&gt;
* cuvintele din propoziție vor avea maximum &#039;&#039;&#039;10&#039;&#039;&#039; litere&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 ele deschid un capac, aerisirea este ok&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 aerisirea&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 acel produs este nemultumitor&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import string&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def este_palindrom(cuvant):&lt;br /&gt;
    return cuvant == cuvant[::-1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea propoziției de la tastatură&lt;br /&gt;
    propozitie = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă propoziția respectă restricțiile&lt;br /&gt;
    if len(propozitie) &amp;gt; 255 or any(len(cuvant) &amp;gt; 10 for cuvant in propozitie.split()):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Înlăturarea semnelor de punctuație&lt;br /&gt;
    propozitie = propozitie.translate(str.maketrans(&#039;&#039;, &#039;&#039;, string.punctuation))&lt;br /&gt;
&lt;br /&gt;
    # Obținerea listei de cuvinte&lt;br /&gt;
    cuvinte = propozitie.split()&lt;br /&gt;
&lt;br /&gt;
    # Filtrarea cuvintelor palindrom și sortarea lor în ordine alfabetică&lt;br /&gt;
    cuvinte_palindrom = sorted(cuvant for cuvant in cuvinte if este_palindrom(cuvant))&lt;br /&gt;
&lt;br /&gt;
    # Afișarea rezultatului&lt;br /&gt;
    if cuvinte_palindrom:&lt;br /&gt;
        print(cuvinte_palindrom[0])&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;IMPOSIBIL&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0973_-_Cuvinte_1&amp;diff=7936</id>
		<title>0973 - Cuvinte 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0973_-_Cuvinte_1&amp;diff=7936"/>
		<updated>2023-12-12T19:02:04Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Hercule trebuie sa strabată un labirint cu capcane reprezentat de o matrice cu &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii și &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; coloane. Pentru fiecare celula a labirintului, se cunoaște timpul exprimat în minute după care celula respectivă devine capcană. După ce o celula devine capcana, Hercule piere dacă intră în acea celulă. Initial Hercule se află în celula de coordonate &amp;#039;&amp;#039;&amp;#039;(1, 1)&amp;#039;&amp;#039;&amp;#039; și trebuie să ajungă în celula de cordonate &amp;#039;&amp;#039;&amp;#039;(n,m)&amp;#039;&amp;#039;&amp;#039;.  Sa se afișeze numaru...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Hercule trebuie sa strabată un labirint cu capcane reprezentat de o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane. Pentru fiecare celula a labirintului, se cunoaște timpul exprimat în minute după care celula respectivă devine capcană. După ce o celula devine capcana, Hercule piere dacă intră în acea celulă. Initial Hercule se află în celula de coordonate &#039;&#039;&#039;(1, 1)&#039;&#039;&#039; și trebuie să ajungă în celula de cordonate &#039;&#039;&#039;(n,m)&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Sa se afișeze numarul total de drumuri pe care le poate urma Hercule prin labirint, astfel încât Hercule să nu piară.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;herculein.txt&#039;&#039;&#039; conține pe prima linie numerele &#039;&#039;&#039;n m&#039;&#039;&#039;, iar pe următoarele &#039;&#039;&#039;n&#039;&#039;&#039; linii câte m valori naturale.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;herculeout.txt&#039;&#039;&#039; va conține pe prima linie numărul total de drumuri prin care Hercule poate ajunge în celula destinație.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; m,n &amp;amp;les; 10&lt;br /&gt;
* Hercule nu poate intra de mai multe ori in aceeasi celula&lt;br /&gt;
* Hercule are nevoie de un minut,ca sa treacă dintr-o celula într-una vecină&lt;br /&gt;
* Hercule se deplasează pe direcțiile N-S și E-V.&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; herculein.txt&lt;br /&gt;
 4 5&lt;br /&gt;
 4 1 1 8 1 &lt;br /&gt;
 6 3 4 5 1 &lt;br /&gt;
 3 2 8 8 8 &lt;br /&gt;
 1 3 4 2 9 &lt;br /&gt;
; herculeout.txt&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; herculein.txt&lt;br /&gt;
 4 11&lt;br /&gt;
 4 1 1 8 1&lt;br /&gt;
 6 3 4 5 1&lt;br /&gt;
 3 2 8 8 8&lt;br /&gt;
 1 3 4 2 9&lt;br /&gt;
; herculeout.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def numar_drumuri(matrice, n, m):&lt;br /&gt;
    dp = [[0 for _ in range(m)] for _ in range(n)]&lt;br /&gt;
    dp[0][0] = 1&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            if i &amp;gt; 0 and matrice[i][j] &amp;gt; i + j:&lt;br /&gt;
                dp[i][j] += dp[i-1][j]&lt;br /&gt;
            if j &amp;gt; 0 and matrice[i][j] &amp;gt; i + j:&lt;br /&gt;
                dp[i][j] += dp[i][j-1]&lt;br /&gt;
&lt;br /&gt;
    return dp[n-1][m-1]&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    with open(&#039;herculein.txt&#039;, &#039;r&#039;) as fin:&lt;br /&gt;
        n, m = map(int, fin.readline().split())&lt;br /&gt;
        matrice = [list(map(int, linie.split())) for linie in fin]&lt;br /&gt;
&lt;br /&gt;
    with open(&#039;herculeout.txt&#039;, &#039;w&#039;) as fout:&lt;br /&gt;
        if not (1 &amp;lt;= n &amp;lt;= 10 and 1 &amp;lt;= m &amp;lt;= 10):&lt;br /&gt;
            fout.write(&amp;quot;Datele de intrare nu corespund restrictiilor impuse\n&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
        fout.write(&amp;quot;Datele de intrare corespund restrictiilor impuse\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        fout.write(str(numar_drumuri(matrice, n, m)) + &#039;\n&#039;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
; Cele două trasee posibile ale lui Hercule sunt:&lt;br /&gt;
 1 0 0 0 0 &lt;br /&gt;
 2 3 4 5 0 &lt;br /&gt;
 0 0 0 6 7 &lt;br /&gt;
 0 0 0 0 8&lt;br /&gt;
; si&lt;br /&gt;
 1 0 0 0 0 &lt;br /&gt;
 2 3 4 0 0 &lt;br /&gt;
 0 0 5 6 7 &lt;br /&gt;
 0 0 0 0 8&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3080-_VerifNumar&amp;diff=7933</id>
		<title>3080- VerifNumar</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3080-_VerifNumar&amp;diff=7933"/>
		<updated>2023-12-12T18:49:03Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Se dă un șir de caractere. Sa se determine numărul scris cu cifrele existente în șirul dat. Să se afișeze numărul obținut și, pe linia următoare, toate caracterele din șir care nu fac parte din număr, cu excepția spațiilor. == Date de intrare == Programul citește de la tastatură un șir de caractere == Date de ieșire == Programul afișează pe ecran numărul determinat, iar pe linia următoare, separate prin câte un spațiu, toate caracterele...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă un șir de caractere. Sa se determine numărul scris cu cifrele existente în șirul dat. Să se afișeze numărul obținut și, pe linia următoare, toate caracterele din șir care nu fac parte din număr, cu excepția spațiilor.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură un șir de caractere&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul afișează pe ecran numărul determinat, iar pe linia următoare, separate prin câte un spațiu, toate caracterele din șir care nu fac parte din număr, cu excepția spațiilor, în ordinea din șir.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* șirul dat va avea cel mult &#039;&#039;&#039;100&#039;&#039;&#039; de caractere;&lt;br /&gt;
* dacă șirul dat reprezintă un număr natural, programul va afișa numai mesajul &#039;&#039;&#039;CORECT&#039;&#039;&#039;;&lt;br /&gt;
* dacă șirul dat nu conține nicio cifră, programul va afișa numai mesajul &#039;&#039;&#039;NaN&#039;&#039;&#039;;&lt;br /&gt;
* dacă șirul nu conține alte cifre în afară de &#039;&#039;&#039;0&#039;&#039;&#039;, numărul rezultat va fi reprezentat de ultima apariție în șir a cifrei &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 00573a9 3ee&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 57393&lt;br /&gt;
 0 0 a e e&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def extrage_numar_si_restul(șir):&lt;br /&gt;
    numar = &#039;&#039;&lt;br /&gt;
    restul_caractere = []&lt;br /&gt;
&lt;br /&gt;
    for caracter in șir:&lt;br /&gt;
        if caracter.isdigit() and caracter != &#039;0&#039;:&lt;br /&gt;
            numar += caracter&lt;br /&gt;
        elif caracter != &#039; &#039;:&lt;br /&gt;
            restul_caractere.append(caracter)&lt;br /&gt;
&lt;br /&gt;
    return numar, restul_caractere&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea șirului de caractere de la tastatură&lt;br /&gt;
    sir = input()&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă șirul respectă restricțiile&lt;br /&gt;
    if len(sir) &amp;gt; 100:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if sir.isdigit():&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        print(&amp;quot;CORECT&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    if not any(caracter.isdigit() for caracter in sir):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        print(&amp;quot;NaN&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Extrage numărul și restul caracterelor&lt;br /&gt;
    numar, restul_caractere = extrage_numar_si_restul(sir)&lt;br /&gt;
&lt;br /&gt;
    # Verifică condițiile și afișează rezultatul&lt;br /&gt;
    if numar:&lt;br /&gt;
        print(numar)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if restul_caractere:&lt;br /&gt;
        print(&#039; &#039;.join(restul_caractere))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3975_-_Intervale_AB&amp;diff=7922</id>
		<title>3975 - Intervale AB</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3975_-_Intervale_AB&amp;diff=7922"/>
		<updated>2023-12-12T18:16:44Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cerinţa == Dându-se &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; intervale &amp;#039;&amp;#039;&amp;#039;[a, b]&amp;#039;&amp;#039;&amp;#039;, calculați numărul maxim de astfel de intervale care se intersectează în cel puțin un punct. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;intervalein.txt&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numărul &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; linii &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin spații, reprezentând limitele intervalelor &amp;#039;&amp;#039;&amp;#039;[a, b]&amp;#039;&amp;#039;&amp;#039;. == Date de ieșire == Fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;intervaleout.txt&amp;#039;&amp;#039;&amp;#039; va conține pe prima l...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Dându-se &#039;&#039;&#039;N&#039;&#039;&#039; intervale &#039;&#039;&#039;[a, b]&#039;&#039;&#039;, calculați numărul maxim de astfel de intervale care se intersectează în cel puțin un punct.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;intervalein.txt&#039;&#039;&#039; conține pe prima linie numărul &#039;&#039;&#039;N&#039;&#039;&#039;, iar pe următoarele &#039;&#039;&#039;N&#039;&#039;&#039; linii &#039;&#039;&#039;2&#039;&#039;&#039; numere naturale separate prin spații, reprezentând limitele intervalelor &#039;&#039;&#039;[a, b]&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;intervaleout.txt&#039;&#039;&#039; va conține pe prima linie numărul &#039;&#039;&#039;mx&#039;&#039;&#039;, reprezentând numărul maxim de intervale care se intersectează în cel puțin un punct.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; N &amp;amp;les; 100.000&lt;br /&gt;
* -2.000.000.000 &amp;amp;les; a &amp;amp;les; b &amp;amp;les; 2.000.000.000 &lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; intervalein.txt&lt;br /&gt;
 5&lt;br /&gt;
 1 5&lt;br /&gt;
 3 4&lt;br /&gt;
 -10 10&lt;br /&gt;
 -23 -20&lt;br /&gt;
 100 200&lt;br /&gt;
; intervaleout.txt&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse.&lt;br /&gt;
 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; intervalein.txt&lt;br /&gt;
 -1&lt;br /&gt;
 1 5&lt;br /&gt;
 3 4&lt;br /&gt;
 -10 10&lt;br /&gt;
 -23 -20&lt;br /&gt;
 100 200&lt;br /&gt;
; intervaleout.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def max_intersecting(intervals):&lt;br /&gt;
    # Sortăm intervalele după capătul drept&lt;br /&gt;
    intervals.sort(key=lambda x: x[1])&lt;br /&gt;
&lt;br /&gt;
    # Inițializăm o listă pentru a stoca intervalele în curs de procesare&lt;br /&gt;
    current_intervals = []&lt;br /&gt;
&lt;br /&gt;
    # Inițializăm numărul maxim de intervale care se intersectează&lt;br /&gt;
    max_inter = 0&lt;br /&gt;
&lt;br /&gt;
    for interval in intervals:&lt;br /&gt;
        # Adăugăm intervalul curent la lista de intervale în curs de procesare&lt;br /&gt;
        current_intervals.append(interval)&lt;br /&gt;
&lt;br /&gt;
        # Eliminăm intervalele care s-au terminat&lt;br /&gt;
        while current_intervals and current_intervals[0][1] &amp;lt; interval[0]:&lt;br /&gt;
            current_intervals.pop(0)&lt;br /&gt;
&lt;br /&gt;
        # Actualizăm numărul maxim de intervale care se intersectează&lt;br /&gt;
        max_inter = max(max_inter, len(current_intervals))&lt;br /&gt;
&lt;br /&gt;
    return max_inter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Deschidem fișierul de intrare și citim datele&lt;br /&gt;
    with open(&#039;intervalein.txt&#039;, &#039;r&#039;) as f:&lt;br /&gt;
        n = int(f.readline().strip())&lt;br /&gt;
        intervals = [list(map(int, f.readline().strip().split())) for _ in range(n)]&lt;br /&gt;
&lt;br /&gt;
    # Verificăm dacă numărul de intervale respectă restricțiile&lt;br /&gt;
    if 1 &amp;lt;= n &amp;lt;= 100000 and all(-2000000000 &amp;lt;= a &amp;lt;= b &amp;lt;= 2000000000 for a, b in intervals):&lt;br /&gt;
        # Dacă da, calculăm numărul maxim de intervale care se intersectează&lt;br /&gt;
        result = max_intersecting(intervals)&lt;br /&gt;
        status = &amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;&lt;br /&gt;
    else:&lt;br /&gt;
        # Dacă nu, afișăm un mesaj de eroare&lt;br /&gt;
        result = &amp;quot;&amp;quot;&lt;br /&gt;
        status = &amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Scriem rezultatul în fișierul de ieșire&lt;br /&gt;
    with open(&#039;intervaleout.txt&#039;, &#039;w&#039;) as f:&lt;br /&gt;
        f.write(status + &#039;\n&#039; + str(result))&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4017_-_Skip&amp;diff=7919</id>
		<title>4017 - Skip</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4017_-_Skip&amp;diff=7919"/>
		<updated>2023-12-12T17:55:00Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: Pagină nouă: == Cifrul Skip == Gigel a găsit pe o foaie criptări ale unor cuvinte în cifrul Skip. Criptarea funcționează astfel:  Fie un cuvânt de lungime &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;. Cuvântul îl vom impărti în două părti, prima parte de lungime &amp;#039;&amp;#039;&amp;#039;[n/2]&amp;#039;&amp;#039;&amp;#039;, iar a doua parte de &amp;#039;&amp;#039;&amp;#039;[(n+1)]/2&amp;#039;&amp;#039;&amp;#039;. Vom scrie prima literă din prima parte, prima literă din a doua parte, a &amp;#039;&amp;#039;&amp;#039;2-a&amp;#039;&amp;#039;&amp;#039; literă din prima parte, a &amp;#039;&amp;#039;&amp;#039;2-a&amp;#039;&amp;#039;&amp;#039; literă din a doua parte, a &amp;#039;&amp;#039;&amp;#039;3-a&amp;#039;&amp;#039;&amp;#039; literă din prima parte, a &amp;#039;&amp;#039;&amp;#039;3-a&amp;#039;&amp;#039;&amp;#039; literă...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cifrul Skip ==&lt;br /&gt;
Gigel a găsit pe o foaie criptări ale unor cuvinte în cifrul Skip. Criptarea funcționează astfel:&lt;br /&gt;
&lt;br /&gt;
Fie un cuvânt de lungime &#039;&#039;&#039;n&#039;&#039;&#039;. Cuvântul îl vom impărti în două părti, prima parte de lungime &#039;&#039;&#039;[n/2]&#039;&#039;&#039;, iar a doua parte de &#039;&#039;&#039;[(n+1)]/2&#039;&#039;&#039;. Vom scrie prima literă din prima parte, prima literă din a doua parte, a &#039;&#039;&#039;2-a&#039;&#039;&#039; literă din prima parte, a &#039;&#039;&#039;2-a&#039;&#039;&#039; literă din a doua parte, a &#039;&#039;&#039;3-a&#039;&#039;&#039; literă din prima parte, a &#039;&#039;&#039;3-a&#039;&#039;&#039; literă din a doua parte … :.&lt;br /&gt;
* &#039;&#039;&#039;AMONG&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;AOMNG&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SUSPICIOUS&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;SCUISOPUIS&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SECRET&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;SREECT&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CIPHER&#039;&#039;&#039; -&amp;gt; &#039;&#039;CHIEPR&#039;&#039;&#039;&lt;br /&gt;
Criptarea unui text constă în criptarea succesivă a fiecărui cuvânt.&lt;br /&gt;
&lt;br /&gt;
== Cerinta ==&lt;br /&gt;
Se dă un numar c care poate fi doar &#039;&#039;&#039;1&#039;&#039;&#039; sau &#039;&#039;&#039;2&#039;&#039;&#039; și un text în care cuvintele sunt separate printr-un spațiu.&lt;br /&gt;
Pentru &#039;&#039;&#039;c=1&#039;&#039;&#039;, textul reprezintă un mesaj necriptat și se cere să-l afișați în urma criptării.&lt;br /&gt;
Pentru &#039;&#039;&#039;c=2&#039;&#039;&#039;, textul reprezintă un mesaj criptat și se cere să-l afișați în urma decriptării.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;skipin.txt&#039;&#039;&#039; citește un număr &#039;&#039;&#039;c&#039;&#039;&#039; și un mesaj.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;skipout.txt&#039;&#039;&#039; va conține pe prima linie mesajul rezultat în urma operației cerute.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; lungimea mesajului &amp;amp;les; 1000000&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; skipin.txt&lt;br /&gt;
 1&lt;br /&gt;
 THERE IS ONE IMPOSTOR AMONG US&lt;br /&gt;
; skipout.txt&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 TEHRE IS ONE ISMTPOOR AOMNG US&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; skipin.txt&lt;br /&gt;
 -1&lt;br /&gt;
 THERE IS ONE IMPOSTOR AMONG US&lt;br /&gt;
; skipout.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def skip_cipher(c, text):&lt;br /&gt;
    words = text.split(&#039; &#039;)&lt;br /&gt;
    result = []&lt;br /&gt;
&lt;br /&gt;
    for word in words:&lt;br /&gt;
        n = len(word)&lt;br /&gt;
        part1 = word[:n // 2]&lt;br /&gt;
        part2 = word[n // 2:]&lt;br /&gt;
&lt;br /&gt;
        if c == 1:  # Encryption&lt;br /&gt;
            encrypted_word = &#039;&#039;.join([part1[i] + part2[i] for i in range(len(part1))] + list(part2[len(part1):]))&lt;br /&gt;
            result.append(encrypted_word)&lt;br /&gt;
        elif c == 2:  # Decryption&lt;br /&gt;
            decrypted_word = &#039;&#039;.join(&lt;br /&gt;
                [word[i] for i in range(0, len(word), 2)] + [word[i] for i in range(1, len(word), 2)])&lt;br /&gt;
            result.append(decrypted_word)&lt;br /&gt;
&lt;br /&gt;
    return &#039; &#039;.join(result)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Deschidem fișierul de intrare și citim datele&lt;br /&gt;
    with open(&#039;skipin.txt&#039;, &#039;r&#039;) as f:&lt;br /&gt;
        c = int(f.readline().strip())&lt;br /&gt;
        text = f.readline().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verificăm dacă lungimea textului respectă restricțiile și dacă c este 1 sau 2&lt;br /&gt;
    if 1 &amp;lt;= len(text) &amp;lt;= 1000000 and c in [1, 2]:&lt;br /&gt;
        # Dacă da, aplicăm funcția de criptare/decriptare&lt;br /&gt;
        result = skip_cipher(c, text)&lt;br /&gt;
        status = &amp;quot;Datele de intrare corespund restrictiilor impuse.&amp;quot;&lt;br /&gt;
    else:&lt;br /&gt;
        # Dacă nu, nu aplicăm funcția și afișăm un mesaj de eroare&lt;br /&gt;
        result = &amp;quot;&amp;quot;&lt;br /&gt;
        status = &amp;quot;Datele de intrare nu corespund restrictiilor impuse.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Scriem rezultatul în fișierul de ieșire&lt;br /&gt;
    with open(&#039;skipout.txt&#039;, &#039;w&#039;) as f:&lt;br /&gt;
        f.write(status + &#039;\n&#039; + result)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Explicatie ==&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0413_-_Adiacenta_1&amp;diff=7915</id>
		<title>0413 - Adiacenta 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0413_-_Adiacenta_1&amp;diff=7915"/>
		<updated>2023-12-12T17:09:28Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă lista muchiilor unui graf neorientat. Să se afișeze matricea de adiacență a grafului.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fiecare dintre liniile fișierului &#039;&#039;&#039;adiacenta1in.txt&#039;&#039;&#039; conține câte o pereche de numere &#039;&#039;&#039;i j&#039;&#039;&#039;, cu semnificația că există muchie între &#039;&#039;&#039;i&#039;&#039;&#039; și &#039;&#039;&#039;j&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fişierul de ieşire &#039;&#039;&#039;adiacenta1out.txt&#039;&#039;&#039; va conţine &#039;&#039;&#039;n&#039;&#039;&#039; linii; pe fiecare dintre ele vor fi câte &#039;&#039;&#039;n&#039;&#039;&#039; valori separate prin exact un spațiu, reprezentând matricea de adiacență a grafului dat.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* graful dat va avea cel mult &#039;&#039;&#039;100&#039;&#039;&#039; de vârfuri&lt;br /&gt;
* muchiile se pot repeta în fișierul de intrare&lt;br /&gt;
* numărul de vârfuri ale grafului va fi egal cu cea mai mare valoare din lista muchiilor&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; adiacenta1in.txt&lt;br /&gt;
 1 4 &lt;br /&gt;
 1 3 &lt;br /&gt;
 3 5 &lt;br /&gt;
 4 5 &lt;br /&gt;
 2 4 &lt;br /&gt;
 1 2 &lt;br /&gt;
 4 2 &lt;br /&gt;
 3 4 &lt;br /&gt;
; adiacenta1out.txt&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 0 1 1 1 0 &lt;br /&gt;
 1 0 0 1 0 &lt;br /&gt;
 1 0 0 1 1 &lt;br /&gt;
 1 1 1 0 1 &lt;br /&gt;
 0 0 1 1 0&lt;br /&gt;
; adiacenta1in.txt&lt;br /&gt;
 1 400&lt;br /&gt;
 1 3 &lt;br /&gt;
 3 5 &lt;br /&gt;
 4 5 &lt;br /&gt;
 2 4 &lt;br /&gt;
 1 2 &lt;br /&gt;
 4 2 &lt;br /&gt;
 3 4 &lt;br /&gt;
; adiacenta1out.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def validare(muchii):&lt;br /&gt;
    n = max(max(muchie) for muchie in muchii)&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 100:&lt;br /&gt;
        return False, &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    return True, &amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    with open(&#039;adiacenta1in.txt&#039;, &#039;r&#039;) as fin:&lt;br /&gt;
        muchii = [list(map(int, linie.split())) for linie in fin]&lt;br /&gt;
&lt;br /&gt;
    valid, message = validare(muchii)&lt;br /&gt;
    with open(&#039;adiacenta1out.txt&#039;, &#039;w&#039;) as fout:&lt;br /&gt;
        fout.write(message + &#039;\n&#039;)&lt;br /&gt;
        if not valid:&lt;br /&gt;
            return&lt;br /&gt;
&lt;br /&gt;
        n = max(max(muchie) for muchie in muchii)&lt;br /&gt;
        adiacenta = [[0 for _ in range(n)] for _ in range(n)]&lt;br /&gt;
        for muchie in muchii:&lt;br /&gt;
            i, j = muchie&lt;br /&gt;
            adiacenta[i - 1][j - 1] = 1&lt;br /&gt;
            adiacenta[j - 1][i - 1] = 1&lt;br /&gt;
&lt;br /&gt;
        for linie in adiacenta:&lt;br /&gt;
            fout.write(&#039; &#039;.join(map(str, linie)) + &#039;\n&#039;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0413_-_Adiacenta_1&amp;diff=7914</id>
		<title>0413 - Adiacenta 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0413_-_Adiacenta_1&amp;diff=7914"/>
		<updated>2023-12-12T17:07:22Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă lista muchiilor unui graf neorientat. Să se afișeze matricea de adiacență a grafului.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fiecare dintre liniile fișierului &#039;&#039;&#039;adiacenta1in.txt&#039;&#039;&#039; conține câte o pereche de numere &#039;&#039;&#039;i j&#039;&#039;&#039;, cu semnificația că există muchie între &#039;&#039;&#039;i&#039;&#039;&#039; și &#039;&#039;&#039;j&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fişierul de ieşire &#039;&#039;&#039;adiacenta1out.txt&#039;&#039;&#039; va conţine &#039;&#039;&#039;n&#039;&#039;&#039; linii; pe fiecare dintre ele vor fi câte &#039;&#039;&#039;n&#039;&#039;&#039; valori separate prin exact un spațiu, reprezentând matricea de adiacență a grafului dat.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* graful dat va avea cel mult &#039;&#039;&#039;100&#039;&#039;&#039; de vârfuri&lt;br /&gt;
* muchiile se pot repeta în fișierul de intrare&lt;br /&gt;
* numărul de vârfuri ale grafului va fi egal cu cea mai mare valoare din lista muchiilor&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; adiacenta1in.txt&lt;br /&gt;
 1 4 &lt;br /&gt;
 1 3 &lt;br /&gt;
 3 5 &lt;br /&gt;
 4 5 &lt;br /&gt;
 2 4 &lt;br /&gt;
 1 2 &lt;br /&gt;
 4 2 &lt;br /&gt;
 3 4 &lt;br /&gt;
; adiacenta1out.txt&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 0 1 1 1 0 &lt;br /&gt;
 1 0 0 1 0 &lt;br /&gt;
 1 0 0 1 1 &lt;br /&gt;
 1 1 1 0 1 &lt;br /&gt;
 0 0 1 1 0&lt;br /&gt;
; adiacenta1in.txt&lt;br /&gt;
 1 400&lt;br /&gt;
 1 3 &lt;br /&gt;
 3 5 &lt;br /&gt;
 4 5 &lt;br /&gt;
 2 4 &lt;br /&gt;
 1 2 &lt;br /&gt;
 4 2 &lt;br /&gt;
 3 4 &lt;br /&gt;
; adiacenta1out.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# Citirea datelor de intrare&lt;br /&gt;
with open(&#039;adiacenta1.in&#039;, &#039;r&#039;) as f:&lt;br /&gt;
    muchii = [list(map(int, linie.split())) for linie in f]&lt;br /&gt;
&lt;br /&gt;
# Determinăm numărul de vârfuri ale grafului&lt;br /&gt;
n = max(max(muchie) for muchie in muchii)&lt;br /&gt;
&lt;br /&gt;
# Inițializăm matricea de adiacență cu 0&lt;br /&gt;
adiacenta = [[0 for _ in range(n)] for _ in range(n)]&lt;br /&gt;
&lt;br /&gt;
# Parcurgem fiecare muchie&lt;br /&gt;
for muchie in muchii:&lt;br /&gt;
    i, j = muchie&lt;br /&gt;
    # Adăugăm muchia în matricea de adiacență&lt;br /&gt;
    adiacenta[i-1][j-1] = 1&lt;br /&gt;
    adiacenta[j-1][i-1] = 1&lt;br /&gt;
&lt;br /&gt;
# Afișăm matricea de adiacență&lt;br /&gt;
with open(&#039;adiacenta1.out&#039;, &#039;w&#039;) as f:&lt;br /&gt;
    for linie in adiacenta:&lt;br /&gt;
        f.write(&#039; &#039;.join(map(str, linie)) + &#039;\n&#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3973_-_Logaritm&amp;diff=7913</id>
		<title>3973 - Logaritm</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3973_-_Logaritm&amp;diff=7913"/>
		<updated>2023-12-12T16:51:53Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Dându-se un număr real &#039;&#039;&#039;x&#039;&#039;&#039;, să se scrie un program care calculează &#039;&#039;&#039;ln(x)&#039;&#039;&#039;&lt;br /&gt;
cu &#039;&#039;&#039;6&#039;&#039;&#039; zecimale exacte.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul real &#039;&#039;&#039;x&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran rezultatul cu &#039;&#039;&#039;6&#039;&#039;&#039; zecimale exacte.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; x &amp;amp;les; 2.000.000.000.&lt;br /&gt;
* &#039;&#039;&#039;x&#039;&#039;&#039; va avea cel mult &#039;&#039;&#039;6&#039;&#039;&#039; zecimale.&lt;br /&gt;
* Nu se vor folosi funcțiile logaritmice ale limbajului C++&lt;br /&gt;
== Exemplu 1==&lt;br /&gt;
; Intrare&lt;br /&gt;
 5.12&lt;br /&gt;
; Ieșire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 1.633154&lt;br /&gt;
== Exemplu 2==&lt;br /&gt;
; Intrare&lt;br /&gt;
 -1&lt;br /&gt;
; Ieșire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def ln(x):&lt;br /&gt;
    # Precizia pe care o dorim&lt;br /&gt;
    epsilon = 1e-10&lt;br /&gt;
&lt;br /&gt;
    # Inițializăm limitele intervalului pentru metoda bisecției&lt;br /&gt;
    low = 0&lt;br /&gt;
    high = x if x &amp;gt; 1 else 1&lt;br /&gt;
&lt;br /&gt;
    # Aplicăm metoda bisecției&lt;br /&gt;
    while high - low &amp;gt; epsilon:&lt;br /&gt;
        mid = (low + high) / 2&lt;br /&gt;
        if math.exp(mid) &amp;lt; x:&lt;br /&gt;
            low = mid&lt;br /&gt;
        else:&lt;br /&gt;
            high = mid&lt;br /&gt;
&lt;br /&gt;
    # Returnăm rezultatul cu 6 zecimale exacte&lt;br /&gt;
    return round((low + high) / 2, 6)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(x):&lt;br /&gt;
    if not 1 &amp;lt;= x &amp;lt;= 2_000_000_000:&lt;br /&gt;
        return False, &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    return True, &amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    print(&amp;quot;Introduceți numărul real x:&amp;quot;)&lt;br /&gt;
    x = float(input())&lt;br /&gt;
&lt;br /&gt;
    valid, message = validare(x)&lt;br /&gt;
    print(message)&lt;br /&gt;
    if not valid:&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;ln(x) calculat cu 6 zecimale exacte este:&amp;quot;)&lt;br /&gt;
    print(ln(x))&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0572_-_Arma&amp;diff=7912</id>
		<title>0572 - Arma</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0572_-_Arma&amp;diff=7912"/>
		<updated>2023-12-12T16:30:31Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Capitala imperiului este protejată de un zid de formă dreptunghiulară formată din &#039;&#039;&#039;n*m&#039;&#039;&#039; cărămizi dispuse pe &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane, linia &#039;&#039;&#039;1&#039;&#039;&#039; fiind cea mai de sus, iar linia &#039;&#039;&#039;n&#039;&#039;&#039; fiind cea mai de jos. Fiecare cărămidă este alcătuită dintr-o substanță identificată printr-un număr natural nenul.&lt;br /&gt;
&lt;br /&gt;
Cuceritorul Gigel are la dispoziție o armă specială, care poate fi programată să distrugă toate cărămizile din zid care sunt formate din aceeași substanță, cunoscută, la o singură tragere. După fiecare tragere, toate cărămizile care sunt situate deasupra celor distruse cad, până ajung pe o cărămidă din zid, sau la baza acestuia.&lt;br /&gt;
&lt;br /&gt;
Solicitarea lui Gigel este să determinați structura zidului după un număr dat de trageri, &#039;&#039;&#039;k&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n m k&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; șiruri cu câte &#039;&#039;&#039;m&#039;&#039;&#039; numere naturale, reprezentând cărămizile de pe fiecare linie. Apoi se vor citi &#039;&#039;&#039;k&#039;&#039;&#039; numere naturale, reprezentând, în ordine, substanța din care sunt alcătuite cărămizile afectate de tragerea curentă.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Programul va afișa pe ecran &#039;&#039;&#039;n&#039;&#039;&#039; șiruri cu câte &#039;&#039;&#039;m&#039;&#039;&#039; numere naturale, separate prin exact un spațiu, reprezentând configurația zidului după cele &#039;&#039;&#039;k&#039;&#039;&#039; trageri. Cărămizile distruse vor fi precizate prin numărul &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; n, m &amp;amp;les; 100&lt;br /&gt;
* 1 &amp;amp;les; k &amp;amp;les; 100&lt;br /&gt;
* substanțele din care sunt create cărămizile sunt identificate prin numere naturale nenule mai mici decât &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
* dacă la o anumită tragere nu există în zid cărămizi de tipul utilizat la acea tragere, zidul rămâne nemodificat&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 4 5 3&lt;br /&gt;
 3 5 4 5 1 &lt;br /&gt;
 2 1 1 5 3 &lt;br /&gt;
 1 1 5 5 1 &lt;br /&gt;
 5 5 1 4 3&lt;br /&gt;
 1 5 1&lt;br /&gt;
; Ieșire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 0 0 0 0 0 &lt;br /&gt;
 0 0 0 0 0 &lt;br /&gt;
 3 0 0 0 3 &lt;br /&gt;
 2 0 4 4 3&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 4 5 101&lt;br /&gt;
 3 5 4 5 1 &lt;br /&gt;
 2 1 1 5 3 &lt;br /&gt;
 1 1 5 5 1 &lt;br /&gt;
 5 5 1 4 3&lt;br /&gt;
 1 5 1&lt;br /&gt;
; Ieșire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def validare(n, m, k, zid, trageri):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 100 or not 1 &amp;lt;= m &amp;lt;= 100 or not 1 &amp;lt;= k &amp;lt;= 100:&lt;br /&gt;
        return False, &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    for row in zid:&lt;br /&gt;
        for z in row:&lt;br /&gt;
            if not 1 &amp;lt;= z &amp;lt; 1000:&lt;br /&gt;
                return False, &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    for t in trageri:&lt;br /&gt;
        if not 1 &amp;lt;= t &amp;lt; 1000:&lt;br /&gt;
            return False, &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    return True, &amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    print(&amp;quot;Introduceți numărul de linii, numărul de coloane și numărul de trageri:&amp;quot;)&lt;br /&gt;
    n, m, k = map(int, input().split())&lt;br /&gt;
    print(&amp;quot;Introduceți configurația inițială a zidului:&amp;quot;)&lt;br /&gt;
    zid = [list(map(int, input().split())) for _ in range(n)]&lt;br /&gt;
    print(&amp;quot;Introduceți substanțele afectate de fiecare tragere:&amp;quot;)&lt;br /&gt;
    trageri = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
    valid, message = validare(n, m, k, zid, trageri)&lt;br /&gt;
    print(message)&lt;br /&gt;
    if not valid:&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    for tragere in trageri:&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            for j in range(m):&lt;br /&gt;
                if zid[i][j] == tragere:&lt;br /&gt;
                    zid[i][j] = 0&lt;br /&gt;
        for _ in range(n):&lt;br /&gt;
            for i in range(n - 1, 0, -1):&lt;br /&gt;
                for j in range(m):&lt;br /&gt;
                    if zid[i][j] == 0 and zid[i - 1][j] != 0:&lt;br /&gt;
                        zid[i][j], zid[i - 1][j] = zid[i - 1][j], zid[i][j]&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Configurația finală a zidului este:&amp;quot;)&lt;br /&gt;
    for linie in zid:&lt;br /&gt;
        print(&#039; &#039;.join(map(str, linie)))&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
; După prima tragere, zidul devine:&lt;br /&gt;
: 0 0 0 5 0 &lt;br /&gt;
: 3 0 0 5 0 &lt;br /&gt;
: 2 5 4 5 3 &lt;br /&gt;
: 5 5 5 4 3&lt;br /&gt;
; După a doua tragere, zidul devine:&lt;br /&gt;
: 0 0 0 0 0 &lt;br /&gt;
: 0 0 0 0 0 &lt;br /&gt;
: 3 0 0 0 3 &lt;br /&gt;
: 2 0 4 4 3&lt;br /&gt;
; A treia tragere nu mai modifică zidul.&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0527_-_Preturi1&amp;diff=7910</id>
		<title>0527 - Preturi1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0527_-_Preturi1&amp;diff=7910"/>
		<updated>2023-12-12T16:19:15Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Gigel trebuie să cumpere &#039;&#039;&#039;n&#039;&#039;&#039; produse, pentru fiecare produs cunoscându-se cantitate necesară. În oraș sunt &#039;&#039;&#039;m&#039;&#039;&#039; magazine, în fiecare magazin găsindu-se produsele dorite la anumite prețuri. Determinați suma totală minimă necesară pentru a cumpăra produsele dorite, știind că Gigel trebuie să cumpere toate produsele din același magazin.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură, în ordine:&lt;br /&gt;
&lt;br /&gt;
* numărul de produse &#039;&#039;&#039;n&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, reprezentând cantitățile necesare din fiecare produs&lt;br /&gt;
* numărul de magazine &#039;&#039;&#039;m&#039;&#039;&#039;&lt;br /&gt;
* m șiruri de câte n numere, șirul &#039;&#039;&#039;i&#039;&#039;&#039; conținând în ordine prețurile celor &#039;&#039;&#039;n&#039;&#039;&#039; produse la magazinul &#039;&#039;&#039;i&#039;&#039;&#039;. Dacă la un magazin nu există un anumit produs, valoarea prețului va fi &#039;&#039;&#039;-1&#039;&#039;&#039;&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran numărul &#039;&#039;&#039;S&#039;&#039;&#039;, reprezentând suma minimă determinată.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; n , m &amp;amp;les; 100&lt;br /&gt;
* cantitățile necesare sunt numere naturale nenule mai mici sau egale cu &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
* prețurile produselor sunt numere naturale nenule mai mici sau egale cu &#039;&#039;&#039;1000&#039;&#039;&#039;, sau &#039;&#039;&#039;-1&#039;&#039;&#039;, cu semnificația de mai sus&lt;br /&gt;
* trebuie cumpărate toate produsele, din același magazin&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 5&lt;br /&gt;
 4 4 5 1 2&lt;br /&gt;
 3&lt;br /&gt;
 5 8 6 2 6&lt;br /&gt;
 -1 4 1 1 5&lt;br /&gt;
 6 6 8 3 9&lt;br /&gt;
; Ieșire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 96&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 101&lt;br /&gt;
 4 4 5 1 2&lt;br /&gt;
 3&lt;br /&gt;
 5 8 6 2 6&lt;br /&gt;
 -1 4 1 1 5&lt;br /&gt;
 6 6 8 3 9&lt;br /&gt;
; Ieșire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
La magazinul &#039;&#039;&#039;1&#039;&#039;&#039; produsele costă &#039;&#039;&#039;96&#039;&#039;&#039;, la magazinul &#039;&#039;&#039;3&#039;&#039;&#039; produsele costă &#039;&#039;&#039;109&#039;&#039;&#039;, iar din magazinul &#039;&#039;&#039;2&#039;&#039;&#039; nu se poate cumpăra produsul &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def min_sum(n, quantities, m, prices):&lt;br /&gt;
    total_min = float(&#039;inf&#039;)&lt;br /&gt;
    for i in range(m):&lt;br /&gt;
        if all(p != -1 for p in prices[i]):&lt;br /&gt;
            total = sum(prices[i][j] * quantities[j] for j in range(n))&lt;br /&gt;
            total_min = min(total_min, total)&lt;br /&gt;
    return total_min&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(n, m, quantities, prices):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 100 or not 1 &amp;lt;= m &amp;lt;= 100:&lt;br /&gt;
        return False, &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    for q in quantities:&lt;br /&gt;
        if not 1 &amp;lt;= q &amp;lt;= 1000:&lt;br /&gt;
            return False, &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    for row in prices:&lt;br /&gt;
        for p in row:&lt;br /&gt;
            if not (-1 &amp;lt;= p &amp;lt;= 1000):&lt;br /&gt;
                return False, &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    return True, &amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    print(&amp;quot;Introduceți numărul de produse:&amp;quot;)&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    print(&amp;quot;Introduceți cantitățile necesare pentru fiecare produs:&amp;quot;)&lt;br /&gt;
    quantities = list(map(int, input().split()))&lt;br /&gt;
    print(&amp;quot;Introduceți numărul de magazine:&amp;quot;)&lt;br /&gt;
    m = int(input())&lt;br /&gt;
    print(&amp;quot;Introduceți prețurile pentru fiecare produs în fiecare magazin:&amp;quot;)&lt;br /&gt;
    prices = [list(map(int, input().split())) for _ in range(m)]&lt;br /&gt;
&lt;br /&gt;
    valid, message = validare(n, m, quantities, prices)&lt;br /&gt;
    print(message)&lt;br /&gt;
    if not valid:&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    total_min = min_sum(n, quantities, m, prices)&lt;br /&gt;
    if total_min == float(&#039;inf&#039;):&lt;br /&gt;
        print(&amp;quot;Nu este posibilă cumpărarea tuturor produselor.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(total_min)&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0526_-_Preturi&amp;diff=7907</id>
		<title>0526 - Preturi</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0526_-_Preturi&amp;diff=7907"/>
		<updated>2023-12-12T16:01:34Z</updated>

		<summary type="html">&lt;p&gt;Ghisa Catalin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Gigel trebuie să cumpere &#039;&#039;&#039;n&#039;&#039;&#039; produse, pentru fiecare produs cunoscându-se cantitate necesară. În oraș sunt &#039;&#039;&#039;m&#039;&#039;&#039; magazine, în fiecare magazin găsindu-se produsele dorite la anumite prețuri. Determinați suma totală minimă necesară pentru a cumpăra produsele dorite, știind că poate cumpăra orice produs din orice magazin.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură, în ordine:&lt;br /&gt;
* numărul de produse &#039;&#039;&#039;n&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, reprezentând cantitățile necesare din fiecare produs&lt;br /&gt;
* numărul de magazine &#039;&#039;&#039;m&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;m&#039;&#039;&#039; șiruri de câte &#039;&#039;&#039;n&#039;&#039;&#039; numere, șirul &#039;&#039;&#039;i&#039;&#039;&#039; conținând în ordine prețurile celor &#039;&#039;&#039;n&#039;&#039;&#039; produse la magazinul &#039;&#039;&#039;i&#039;&#039;&#039;. Dacă la un magazin nu există un anumit produs, valoarea prețului va fi &#039;&#039;&#039;-1&#039;&#039;&#039;&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Programul va afișa pe ecran numărul &#039;&#039;&#039;S&#039;&#039;&#039;, reprezentând suma minimă determinată.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 &amp;amp;les; n , m &amp;amp;les; 100&lt;br /&gt;
* cantitățile necesare sunt numere naturale nenule mai mici sau egale cu &#039;&#039;&#039;1000&#039;&#039;&#039;&lt;br /&gt;
* prețurile produselor sunt numere naturale nenule mai mici sau egale cu &#039;&#039;&#039;1000&#039;&#039;&#039;, sau &#039;&#039;&#039;-1&#039;&#039;&#039;, cu semnificația de mai sus&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 5&lt;br /&gt;
 4 4 5 1 2&lt;br /&gt;
 3&lt;br /&gt;
 5 8 6 -1 6&lt;br /&gt;
 -1 4 8  9 5&lt;br /&gt;
 6 6 8  3 9&lt;br /&gt;
; Ieșire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 79&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 101&lt;br /&gt;
 4 4 5 1 2&lt;br /&gt;
 3&lt;br /&gt;
 5 8 6 -1 6&lt;br /&gt;
 -1 4 8  9 5&lt;br /&gt;
 6 6 8  3 9&lt;br /&gt;
; Ieșire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
Din magazinul &#039;&#039;&#039;1&#039;&#039;&#039; se cumpără produsele &#039;&#039;&#039;1 3&#039;&#039;&#039;; din magazinul &#039;&#039;&#039;2&#039;&#039;&#039; se cumpără produsele &#039;&#039;&#039;2 5&#039;&#039;&#039;, iar din magazinul &#039;&#039;&#039;3&#039;&#039;&#039; se cumpără produsul &#039;&#039;&#039;4&#039;&#039;&#039;.&lt;br /&gt;
În total se plătesc &#039;&#039;&#039;4 * 5 + 4 * 4 + 5 * 6 + 1 * 3 + 2 * 5 = 79&#039;&#039;&#039;.&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def min_sum(n, quantities, m, prices):&lt;br /&gt;
    total = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        available_prices = [prices[j][i] for j in range(m) if prices[j][i] != -1]&lt;br /&gt;
        if available_prices:&lt;br /&gt;
            total += min(available_prices) * quantities[i]&lt;br /&gt;
    return total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare(n, m, quantities, prices):&lt;br /&gt;
    if not 1 &amp;lt;= n &amp;lt;= 100 or not 1 &amp;lt;= m &amp;lt;= 100:&lt;br /&gt;
        return False, &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    for q in quantities:&lt;br /&gt;
        if not 1 &amp;lt;= q &amp;lt;= 1000:&lt;br /&gt;
            return False, &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    for row in prices:&lt;br /&gt;
        for p in row:&lt;br /&gt;
            if not (-1 &amp;lt;= p &amp;lt;= 1000):&lt;br /&gt;
                return False, &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    return True, &amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    print(&amp;quot;Introduceți numărul de produse:&amp;quot;)&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    print(&amp;quot;Introduceți cantitățile necesare pentru fiecare produs:&amp;quot;)&lt;br /&gt;
    quantities = list(map(int, input().split()))&lt;br /&gt;
    print(&amp;quot;Introduceți numărul de magazine:&amp;quot;)&lt;br /&gt;
    m = int(input())&lt;br /&gt;
    print(&amp;quot;Introduceți prețurile pentru fiecare produs în fiecare magazin:&amp;quot;)&lt;br /&gt;
    prices = [list(map(int, input().split())) for _ in range(m)]&lt;br /&gt;
&lt;br /&gt;
    valid, message = validare(n, m, quantities, prices)&lt;br /&gt;
    print(message)&lt;br /&gt;
    if not valid:&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(min_sum(n, quantities, m, prices))&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;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ghisa Catalin</name></author>
	</entry>
</feed>