<?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=Andor+Giulia</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=Andor+Giulia"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/wiki/Special:Contributions/Andor_Giulia"/>
	<updated>2026-05-01T02:34:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2807_-_Matrice_10&amp;diff=4019</id>
		<title>2807 - Matrice 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2807_-_Matrice_10&amp;diff=4019"/>
		<updated>2023-04-22T14:18:26Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2807/matrice10]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Scrieți un program care citește de la tastatură două numere naturale din intervalul &#039;&#039;&#039;[2,50]&#039;&#039;&#039;, &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;, și elementele unui tablou bidimensional cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane, numere naturale distincte din intervalul &#039;&#039;&#039;[0,104]&#039;&#039;&#039;.&lt;br /&gt;
Programul interschimbă valoarea minimă din ultima coloană a tabloului cu valoarea minimă din prima coloană a tabloului, apoi afișează pe ecran tabloul modificat, câte o linie a tabloului pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spațiu.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n m&#039;&#039;&#039;, iar apoi cele &#039;&#039;&#039;n • m&#039;&#039;&#039; elemente ale tabloului.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Programul va afișa pe ecran elementele tabloului modificat, conform cerinței. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2 ≤ n,m ≤ 50&#039;&#039;&#039;&lt;br /&gt;
* elementele tabloului aparțin intervalului&#039;&#039;&#039;[0,104]&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 4 3&lt;br /&gt;
: 7 5 19&lt;br /&gt;
: 3 8 4&lt;br /&gt;
: 23 6 1&lt;br /&gt;
: 10 2 9&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 7 5 19&lt;br /&gt;
: 1 8 4&lt;br /&gt;
: 23 6 3&lt;br /&gt;
: 10 2 9 &lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        m = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 2 &amp;lt;= n &amp;lt;= 50 and 2 &amp;lt;= m &amp;lt;= 50:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(n):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(m):&lt;br /&gt;
            for i in range(3):&lt;br /&gt;
                try:&lt;br /&gt;
                    valoare = int(input(f&amp;quot;Introduceti un numar pentru linia {linie+1}, coloana {coloana+1}: &amp;quot;))&lt;br /&gt;
                    if 0&amp;lt;= valoare &amp;lt;= 10**4:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(valoare)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Prea multe incercari esuate.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def Matrice10(matrice):&lt;br /&gt;
    n, m = len(matrice), len(matrice[0])&lt;br /&gt;
    a = matrice&lt;br /&gt;
&lt;br /&gt;
    i1, j1, i2, j2, min1, min2 = 0, 0, 0, 0, 10000, 10000&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if a[i][0] &amp;lt; min1:&lt;br /&gt;
            min1 = a[i][0]&lt;br /&gt;
            i1, j1 = i, 0&lt;br /&gt;
        if a[i][m - 1] &amp;lt; min2:&lt;br /&gt;
            min2 = a[i][m - 1]&lt;br /&gt;
            i2, j2 = i, m - 1&lt;br /&gt;
&lt;br /&gt;
    a[i1][j1], a[i2][j2] = a[i2][j2], a[i1][j1]&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        print(*a[i])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    matrice = citire_matrice()&lt;br /&gt;
    print(&amp;quot;Matricea initiala:&amp;quot;)&lt;br /&gt;
    for linie in matrice:&lt;br /&gt;
        print(linie)&lt;br /&gt;
    print(&amp;quot;Matricea transformata:&amp;quot;)&lt;br /&gt;
    Matrice10(matrice)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod este scris in limbajul Python si contine doua functii: &amp;quot;citire_matrice&amp;quot; si &amp;quot;Matrice10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 Functia &amp;quot;citire_matrice&amp;quot; citeste de la tastatura numarul de linii si coloane ale matricei, verifica daca acestea se incadreaza in intervalul [2,50], apoi citeste elementele matricei, verificand daca acestea sunt numere intregi in intervalul [0,104]. Daca valorile introduse nu respecta cerintele, programul se va opri.&lt;br /&gt;
&lt;br /&gt;
 Functia &amp;quot;Matrice10&amp;quot; citeste de la tastatura dimensiunile matricei si elementele acesteia, apoi interschimba valorile minime din prima si ultima coloana a matricei. La final, afiseaza matricea modificata.&lt;br /&gt;
&lt;br /&gt;
 In program, functia &amp;quot;citire_matrice&amp;quot; este apelata la inceput pentru a citi matricea initiala, iar apoi functia &amp;quot;Matrice10&amp;quot; este apelata pentru a modifica si afisa matricea finala.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0222_-_Min_Cols&amp;diff=4017</id>
		<title>0222 - Min Cols</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0222_-_Min_Cols&amp;diff=4017"/>
		<updated>2023-04-22T12:53:54Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/222/mincols] == Enunt == Se consideră tabloul bidimensional cu &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; coloane ce conţine numere întregi cu cel mult patru cifre fiecare. == Cerinţa == Să se determine, pentru fiecare coloană, valoarea minimă de pe coloana respectivă. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;mincols.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii câte &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/222/mincols]&lt;br /&gt;
== Enunt ==&lt;br /&gt;
Se consideră tabloul bidimensional cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;n&#039;&#039;&#039; coloane ce conţine numere întregi cu cel mult patru cifre fiecare.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se determine, pentru fiecare coloană, valoarea minimă de pe coloana respectivă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;mincols.in&#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 câte &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spaţii, reprezentând elementele tabloului.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Fişierul de ieşire &#039;&#039;&#039;mincols.out&#039;&#039;&#039; va conţine pe prima linie &#039;&#039;&#039;n&#039;&#039;&#039; numere, reprezentând în ordine minimele de pe coloane, separate printr-un spaţiu. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2 ≤ n ≤ 50&#039;&#039;&#039;&lt;br /&gt;
* elementele tabloului sunt cuprinse între &#039;&#039;&#039;-1000&#039;&#039;&#039; şi &#039;&#039;&#039;1000&#039;&#039;&#039;.&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;mincols.in&#039;&#039;&#039;&lt;br /&gt;
: 4&lt;br /&gt;
: 122 103 5 10&lt;br /&gt;
: -7 18 -10 2&lt;br /&gt;
: 107 999 59 4&lt;br /&gt;
: 1 200 100 7&lt;br /&gt;
; &#039;&#039;&#039;mincols.out&#039;&#039;&#039;&lt;br /&gt;
: -7 18 -10 2&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    try:&lt;br /&gt;
        with open(&amp;quot;mincols.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
            n = int(fin.readline())&lt;br /&gt;
            if 2 &amp;lt;= n &amp;lt;= 50:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrice = []&lt;br /&gt;
            for linie in range(n):&lt;br /&gt;
                linie_matrice = []&lt;br /&gt;
                valori = fin.readline().split()&lt;br /&gt;
                for coloana in range(n):&lt;br /&gt;
                    try:&lt;br /&gt;
                        valoare = int(valori[coloana])&lt;br /&gt;
                        if -1000 &amp;lt;= valoare &amp;lt;= 1000:&lt;br /&gt;
                            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                            linie_matrice.append(valoare)&lt;br /&gt;
                        else:&lt;br /&gt;
                            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                            exit()&lt;br /&gt;
                    except ValueError:&lt;br /&gt;
                        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
                        exit()&lt;br /&gt;
                matrice.append(linie_matrice)&lt;br /&gt;
&lt;br /&gt;
            return n, matrice&lt;br /&gt;
    except FileNotFoundError:&lt;br /&gt;
        print(&amp;quot;Fisierul mincols.in nu exista.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def mincols():&lt;br /&gt;
    n, a = citire_matrice()&lt;br /&gt;
    with open(&amp;quot;mincols.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        for j in range(n):&lt;br /&gt;
            mini = 1001&lt;br /&gt;
            for i in range(n):&lt;br /&gt;
                if a[i][j] &amp;lt; mini:&lt;br /&gt;
                    mini = a[i][j]&lt;br /&gt;
            fout.write(str(mini) + &amp;quot; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    col_zero = mincols()&lt;br /&gt;
    print(&amp;quot;rezultatul este: &amp;quot;, col_zero)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod implementează o funcție numită citire_matrice() care citește o matrice de numere întregi dintr-un fișier de intrare numit &amp;quot;mincols.in&amp;quot; și verifică dacă dimensiunile și valorile matricei îndeplinesc anumite restricții. Dacă matricea nu îndeplinește aceste restricții, programul se oprește prin apelarea funcției exit().&lt;br /&gt;
&lt;br /&gt;
 Funcția mincols() deschide fișierul &amp;quot;mincols.in&amp;quot; și citește dimensiunea matricei și elementele acesteia. Apoi, pentru fiecare coloană a matricei, determină valoarea minimă din acea coloană și o scrie într-un fișier de ieșire numit &amp;quot;mincols.out&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 În funcția main, programul apelează funcția mincols() și afișează un mesaj de confirmare.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0191_-_Max_Mat&amp;diff=4016</id>
		<title>0191 - Max Mat</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0191_-_Max_Mat&amp;diff=4016"/>
		<updated>2023-04-22T12:45:14Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/191/maxmat] == Enunt == Se dă 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 și elemente numere întregi. == Cerinţa == Să se determine, pentru fiecare linie a matricei, valoarea maximă și indicele coloanei pe care se află valoarea maximă. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;maxmat.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;, iar următoarele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii câte &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; numere întregi, reprezentând ele...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/191/maxmat]&lt;br /&gt;
== Enunt ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane și elemente numere întregi.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se determine, pentru fiecare linie a matricei, valoarea maximă și indicele coloanei pe care se află valoarea maximă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;maxmat.in&#039;&#039;&#039; conţine pe prima linie numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;, iar următoarele &#039;&#039;&#039;n&#039;&#039;&#039; linii câte &#039;&#039;&#039;m&#039;&#039;&#039; numere întregi, reprezentând elementele matricei.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Fişierul de ieşire &#039;&#039;&#039;maxmat.out&#039;&#039;&#039; va conţine &#039;&#039;&#039;n&#039;&#039;&#039; linii; pe fiecare linie se vor afla două numere, separate prin exact un spațiu, reprezentând valoarea maximă de pe linia curentă și indicele coloanei pe care se află aceasta . În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n,m ≤ 25&#039;&#039;&#039;&lt;br /&gt;
* elementele matricei aparțin intervalului &#039;&#039;&#039;[-1000,1000]&#039;&#039;&#039;&lt;br /&gt;
* dacă pe o linie a matricei, elementul maxim apare de mai multe ori, se va afișa indicele de coloană minim&lt;br /&gt;
* liniile și coloanele matricei sunt numerotate de la &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;maxmat.in&#039;&#039;&#039;&lt;br /&gt;
: 4 5&lt;br /&gt;
: -2 -9 7 -7 -7 &lt;br /&gt;
: 1 -7 -8 -1 4 &lt;br /&gt;
: 8 2 5 -7 2 &lt;br /&gt;
: 8 -9 -7 10 -9 &lt;br /&gt;
; &#039;&#039;&#039;maxmat.out&#039;&#039;&#039;&lt;br /&gt;
: 7 3&lt;br /&gt;
: 4 5&lt;br /&gt;
: 8 1&lt;br /&gt;
: 10 4&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    try:&lt;br /&gt;
        with open(&amp;quot;maxmat.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
            n, m = map(int, fin.readline().split())&lt;br /&gt;
            if 1 &amp;lt;= n &amp;lt;= 25 and 1 &amp;lt;= m &amp;lt;= 25:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrice = []&lt;br /&gt;
            for linie in range(n):&lt;br /&gt;
                linie_matrice = []&lt;br /&gt;
                valori = fin.readline().split()&lt;br /&gt;
                for coloana in range(m):&lt;br /&gt;
                    try:&lt;br /&gt;
                        valoare = int(valori[coloana])&lt;br /&gt;
                        if -1000 &amp;lt;= valoare &amp;lt;= 1000:&lt;br /&gt;
                            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                            linie_matrice.append(valoare)&lt;br /&gt;
                        else:&lt;br /&gt;
                            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                            exit()&lt;br /&gt;
                    except ValueError:&lt;br /&gt;
                        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
                        exit()&lt;br /&gt;
                matrice.append(linie_matrice)&lt;br /&gt;
&lt;br /&gt;
            return n, m, matrice&lt;br /&gt;
    except FileNotFoundError:&lt;br /&gt;
        print(&amp;quot;Fisierul maxmat.in nu exista.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def maxmat():&lt;br /&gt;
    n, m, a = citire_matrice()&lt;br /&gt;
    with open(&amp;quot;maxmat.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            maxi = -1001&lt;br /&gt;
            for j in range(m):&lt;br /&gt;
                if a[i][j] &amp;gt; maxi:&lt;br /&gt;
                    maxi = a[i][j]&lt;br /&gt;
                    ind = j&lt;br /&gt;
            fout.write(str(maxi) + &amp;quot; &amp;quot; + str(ind + 1) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    col_zero = maxmat()&lt;br /&gt;
    print(&amp;quot;rezultatul este: &amp;quot;, col_zero)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod este format din doua functii:&lt;br /&gt;
&lt;br /&gt;
 citire_matrice() - aceasta functie deschide fisierul &amp;quot;maxmat.in&amp;quot;, citeste dimensiunile matricei si verfica daca sunt in conformitate cu restrictiile impuse (1&amp;lt;=n,m&amp;lt;=25). Apoi, citeste matricea din fisier, verifica daca valorile matricei sunt in intervalul [-1000, 1000], si construieste matricea in memorie. Daca valorile nu sunt valide sau fisierul nu exista, se afiseaza un mesaj corespunzator si se iese din program. Se returneaza dimensiunile matricei si matricea construita in memorie.&lt;br /&gt;
&lt;br /&gt;
 maxmat() - aceasta functie apeleaza citire_matrice() pentru a obtine dimensiunile matricei si matricea in memorie. Apoi, deschide fisierul &amp;quot;maxmat.out&amp;quot; pentru a scrie rezultatele si parcurge matricea in linii, cautand cel mai mare element de pe fiecare linie. Daca gaseste un element mai mare, salveaza valoarea si pozitia acestuia. Dupa ce a terminat de parcurs fiecare linie, scrie in fisier valoarea maxima si pozitia acesteia pentru fiecare linie.&lt;br /&gt;
 In final, codul verifica daca a fost obtinut un rezultat si afiseaza un mesaj corespunzator.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0314_-_Col_Zero&amp;diff=4015</id>
		<title>0314 - Col Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0314_-_Col_Zero&amp;diff=4015"/>
		<updated>2023-04-22T12:32:00Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/314/colzero] == Cerinţa == Se consideră tabloul bidimensional cu &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; coloane şi elemente numere naturale. Să se determine numărul de coloane care conţin doar elemente egale cu &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;colzero.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii câte &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin spaţii, reprezentând elementele t...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/314/colzero]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se consideră tabloul bidimensional cu &#039;&#039;&#039;m&#039;&#039;&#039; linii şi &#039;&#039;&#039;n&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine numărul de coloane care conţin doar elemente egale cu &#039;&#039;&#039;0&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;colzero.in&#039;&#039;&#039; conţine pe prima linie numerele &#039;&#039;&#039;m&#039;&#039;&#039; şi &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarele &#039;&#039;&#039;m&#039;&#039;&#039; linii câte &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spaţii, reprezentând elementele tabloului.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Fişierul de ieşire &#039;&#039;&#039;colzero.out&#039;&#039;&#039; va conţine numărul &#039;&#039;&#039;NR&#039;&#039;&#039;, reprezentând valoarea determinată.  În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2≤m,n≤10&#039;&#039;&#039;&lt;br /&gt;
* elementele tabloului sunt ≤ &#039;&#039;&#039;1000&#039;&#039;&#039;;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;colzero.in&#039;&#039;&#039;&lt;br /&gt;
: 4 5&lt;br /&gt;
: 2 0 3 0 0&lt;br /&gt;
: 4 0 3 0 0 &lt;br /&gt;
: 1 0 3 0 0 &lt;br /&gt;
: 4 0 3 0 0 &lt;br /&gt;
; &#039;&#039;&#039;colzero.out&#039;&#039;&#039;&lt;br /&gt;
: 3&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    try:&lt;br /&gt;
        with open(&amp;quot;interschimbarelinii.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
            n, m = map(int, fin.readline().split())&lt;br /&gt;
            if 2 &amp;lt;= n &amp;lt;= 10 and 2 &amp;lt;= m &amp;lt;= 10:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrice = []&lt;br /&gt;
            for linie in range(n):&lt;br /&gt;
                linie_matrice = []&lt;br /&gt;
                valori = fin.readline().split()&lt;br /&gt;
                for coloana in range(m):&lt;br /&gt;
                    try:&lt;br /&gt;
                        valoare = int(valori[coloana])&lt;br /&gt;
                        if valoare &amp;lt;= 10000:&lt;br /&gt;
                            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                            linie_matrice.append(valoare)&lt;br /&gt;
                        else:&lt;br /&gt;
                            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                            exit()&lt;br /&gt;
                    except ValueError:&lt;br /&gt;
                        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
                        exit()&lt;br /&gt;
                matrice.append(linie_matrice)&lt;br /&gt;
&lt;br /&gt;
            return n, m, matrice&lt;br /&gt;
    except FileNotFoundError:&lt;br /&gt;
        print(&amp;quot;Fisierul interschimbarelinii.in nu exista.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def ColZero():&lt;br /&gt;
    with open(&amp;quot;colzero.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        n, m = map(int, fin.readline().split())&lt;br /&gt;
        a = []&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            row = list(map(int, fin.readline().split()))&lt;br /&gt;
            a.append(row)&lt;br /&gt;
&lt;br /&gt;
    cnt = 0&lt;br /&gt;
    with open(&amp;quot;colzero.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            ok = True&lt;br /&gt;
            for i in range(n):&lt;br /&gt;
                if a[i][j] != 0:&lt;br /&gt;
                    ok = False&lt;br /&gt;
                    break&lt;br /&gt;
            if ok:&lt;br /&gt;
                cnt += 1&lt;br /&gt;
        fout.write(str(cnt))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    col_zero=ColZero()&lt;br /&gt;
    print(&amp;quot;rezultatul este: &amp;quot;, col_zero)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod este format din două funcții: citire_matrice() și ColZero(), și o secțiune care apelează funcția ColZero() și afișează rezultatul.&lt;br /&gt;
&lt;br /&gt;
 Funcția citire_matrice() citește din fișierul &amp;quot;interschimbarelinii.in&amp;quot; dimensiunile unei matrice și valorile acesteia, verificând dacă valorile se încadrează în limitele specificate. Dacă valorile sunt valide, funcția returnează dimensiunile și matricea.&lt;br /&gt;
&lt;br /&gt;
 Funcția ColZero() citește din fișierul &amp;quot;colzero.in&amp;quot; o matrice și verifică câte coloane conțin doar elemente egale cu 0. Rezultatul este scris în fișierul &amp;quot;colzero.out&amp;quot; și întors de funcție.&lt;br /&gt;
&lt;br /&gt;
 În secțiunea if _name_ == &amp;quot;_main_&amp;quot;:, se apelează funcția ColZero() și se afișează rezultatul obținut.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0669_-_Lin_Col&amp;diff=4014</id>
		<title>0669 - Lin Col</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0669_-_Lin_Col&amp;diff=4014"/>
		<updated>2023-04-22T12:24:04Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/669/lincol] == Cerinţa == Se dă 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 și elemente numere naturale. Se cere să se determine suma elementelor de pe anumite linii și coloane, precizate. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;lincol.in&amp;#039;&amp;#039;&amp;#039; va conține pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;n m&amp;#039;&amp;#039;&amp;#039;, Următoarele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii conțin câte &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; numere naturale, separate prin spații, reprezentând elementele matricei. Următoarea l...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/669/lincol]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane și elemente numere naturale. Se cere să se determine suma elementelor de pe anumite linii și coloane, precizate.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;lincol.in&#039;&#039;&#039; va conține pe prima linie numerele &#039;&#039;&#039;n m&#039;&#039;&#039;, Următoarele &#039;&#039;&#039;n&#039;&#039;&#039; linii conțin câte &#039;&#039;&#039;m&#039;&#039;&#039; numere naturale, separate prin spații, reprezentând elementele matricei. Următoarea linie conține numărul de întrebări, &#039;&#039;&#039;p&#039;&#039;&#039;, iar fiecare dintre următoarele &#039;&#039;&#039;p&#039;&#039;&#039; linii conține câte o întrebare, de forma &#039;&#039;&#039;Q I&#039;&#039;&#039;, unde &#039;&#039;&#039;Q&#039;&#039;&#039; poate fi unul dintre caracterele &#039;&#039;&#039;L&#039;&#039;&#039; sau &#039;&#039;&#039;C&#039;&#039;&#039;, iar &#039;&#039;&#039;I&#039;&#039;&#039; este un număr natural. Dacă &#039;&#039;&#039;Q = L&#039;&#039;&#039;, se cere determinarea sumei elementelor de pe linia &#039;&#039;&#039;I&#039;&#039;&#039;, iar dacă &#039;&#039;&#039;Q = C&#039;&#039;&#039; se cere determinarea sumei elementelor de pe coloana &#039;&#039;&#039;I&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Fișierul de ieșire &#039;&#039;&#039;lincol.out&#039;&#039;&#039;va conține &#039;&#039;&#039;p&#039;&#039;&#039; linii, fiecare conținând, în ordine, răspunsul la întrebarea corespunzătoare. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n , m ≤ 100&#039;&#039;&#039;&lt;br /&gt;
* elementele matricei sunt numere naturale mai mici decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ p ≤ 100&#039;&#039;&#039;&lt;br /&gt;
* liniile sunt numerotate de la &#039;&#039;&#039;1&#039;&#039;&#039; la &#039;&#039;&#039;n&#039;&#039;&#039;, iar coloanele de la &#039;&#039;&#039;1&#039;&#039;&#039; la &#039;&#039;&#039;m&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;lincol.in&#039;&#039;&#039;&lt;br /&gt;
: 4 5&lt;br /&gt;
: 4 7 5 4 2&lt;br /&gt;
: 1 1 2 3 4&lt;br /&gt;
: 2 2 0 0 3&lt;br /&gt;
: 4 8 2 6 1&lt;br /&gt;
: 6&lt;br /&gt;
: C 2&lt;br /&gt;
: L 1&lt;br /&gt;
: C 3&lt;br /&gt;
: C 5&lt;br /&gt;
: L 4&lt;br /&gt;
: C 3&lt;br /&gt;
; &#039;&#039;&#039;lincol.out&#039;&#039;&#039;&lt;br /&gt;
: 18&lt;br /&gt;
: 22&lt;br /&gt;
: 9&lt;br /&gt;
: 10&lt;br /&gt;
: 21&lt;br /&gt;
: 9&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    # Deschide fișierul de intrare și citește n, m și matricea&lt;br /&gt;
    with open(&amp;quot;lincol.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        n, m = map(int, fin.readline().split())&lt;br /&gt;
        if not (1 &amp;lt;= n &amp;lt;= 100 and 1 &amp;lt;= m &amp;lt;= 100):&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
        matrice = []&lt;br /&gt;
        # Citește matricea din fișierul de intrare&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            row = list(map(int, fin.readline().split()))&lt;br /&gt;
            # Verifică dacă elementele matricei sunt conform cerințelor&lt;br /&gt;
            if not all(x &amp;lt;= 1000000 for x in row):&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrice.append(row)&lt;br /&gt;
&lt;br /&gt;
        # Citește numărul de întrebări&lt;br /&gt;
        p = int(fin.readline())&lt;br /&gt;
        intrebari = []&lt;br /&gt;
        # Citește întrebările din fișierul de intrare&lt;br /&gt;
        for i in range(p):&lt;br /&gt;
            linie = fin.readline().split()&lt;br /&gt;
            intrebare = {&#039;tip&#039;: linie[0], &#039;index&#039;: int(linie[1])}&lt;br /&gt;
            intrebari.append(intrebare)&lt;br /&gt;
&lt;br /&gt;
        return n, m, matrice, intrebari&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def LinCol(n, m, matrice, intrebari):&lt;br /&gt;
    with open(&amp;quot;lincol.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        for intrebare in intrebari:&lt;br /&gt;
            s = 0&lt;br /&gt;
            if intrebare[&#039;tip&#039;] == &#039;C&#039;:&lt;br /&gt;
                for i in range(n):&lt;br /&gt;
                    s += matrice[i][intrebare[&#039;index&#039;] - 1]&lt;br /&gt;
            elif intrebare[&#039;tip&#039;] == &#039;L&#039;:&lt;br /&gt;
                for j in range(m):&lt;br /&gt;
                    s += matrice[intrebare[&#039;index&#039;] - 1][j]&lt;br /&gt;
            fout.write(str(s) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m, matrice, intrebari = citire_matrice()&lt;br /&gt;
    LinCol(n, m, matrice, intrebari)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acesta este un program Python care citeste o matrice dintr-un fisier de intrare, efectueaza operatii de suma pe coloane sau linii ale matricei, si afiseaza rezultatele intr-un fisier de iesire.&lt;br /&gt;
&lt;br /&gt;
 Functia citire_matrice() citeste dimensiunile matricei si elementele acesteia din fisierul de intrare. De asemenea, citeste numarul de intrebari si construieste o lista de dictionare, unde fiecare dictionar contine tipul de intrebare (linie sau coloana) si indexul acesteia. Functia returneaza toate aceste informatii.&lt;br /&gt;
&lt;br /&gt;
 Functia LinCol() efectueaza operatiile de suma cerute in intrebari si afiseaza rezultatele in fisierul de iesire. Pentru fiecare intrebare, functia parcurge linia sau coloana corespunzatoare si calculeaza suma elementelor. Rezultatul este afisat in fisierul de iesire.&lt;br /&gt;
&lt;br /&gt;
 In if _name_ == &amp;quot;_main_&amp;quot;: se apeleaza functia citire_matrice() pentru a obtine informatiile necesare, si apoi se apeleaza functia LinCol() pentru a efectua operatiile si afisa rezultatele.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0635_-_Vecini_1&amp;diff=4013</id>
		<title>0635 - Vecini 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0635_-_Vecini_1&amp;diff=4013"/>
		<updated>2023-04-22T12:14:39Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/635/vecini1] == Cerinţa == Se dă 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 și elemente numere naturale. Determinați pentru câte dintre elementele matricei toți vecinii au valori diferite între ele. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;vecini1.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;n m&amp;#039;&amp;#039;&amp;#039;; urmează &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii cu câte &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin spații – elementele matricei. == Date de ieșire == D...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/635/vecini1]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane și elemente numere naturale. Determinați pentru câte dintre elementele matricei toți vecinii au valori diferite între ele.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;vecini1.in&#039;&#039;&#039; conține pe prima linie numerele &#039;&#039;&#039;n m&#039;&#039;&#039;; urmează &#039;&#039;&#039;n&#039;&#039;&#039; linii cu câte &#039;&#039;&#039;m&#039;&#039;&#039; numere naturale separate prin spații – elementele matricei.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;.Fișierul de ieșire &#039;&#039;&#039;vecini1.out&#039;&#039;&#039; va conține pe prima linie numărul &#039;&#039;&#039;C&#039;&#039;&#039;, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n,m ≤ 100&#039;&#039;&#039;&lt;br /&gt;
* elementele matricei vor fi mai mici decât &#039;&#039;&#039;1 000 000&#039;&#039;&#039;&lt;br /&gt;
* considerăm că un element al matricei poate avea patru vecini: elementele situate pe aceeași linie și pe coloanele adiacente și elementele aflate pe aceeași coloană și liniile adiacente&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;vecini1.in&#039;&#039;&#039;&lt;br /&gt;
:4 5&lt;br /&gt;
: 6 6 4 6 6 &lt;br /&gt;
: 2 2 6 4 6 &lt;br /&gt;
: 1 1 7 3 6 &lt;br /&gt;
: 6 3 6 5 6&lt;br /&gt;
; &#039;&#039;&#039;vecini1.out&#039;&#039;&#039;&lt;br /&gt;
: 9&lt;br /&gt;
==== Explicatie ====&lt;br /&gt;
Cele &#039;&#039;&#039;9&#039;&#039;&#039; elemente sunt marcate mai jos:&lt;br /&gt;
: &#039;&#039;&#039;6	6&#039;&#039;&#039;	4	6	6&lt;br /&gt;
: &#039;&#039;&#039;2&#039;&#039;&#039;	2	6	4	6&lt;br /&gt;
: &#039;&#039;&#039;1	1&#039;&#039;&#039;	7	&#039;&#039;&#039;3&#039;&#039;&#039;	6&lt;br /&gt;
: &#039;&#039;&#039;6&#039;&#039;&#039;	3	&#039;&#039;&#039;6&#039;&#039;&#039;	5	&#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    # Deschide fișierul de intrare și citește n, m și p&lt;br /&gt;
    with open(&amp;quot;vecini1.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        line = fin.readline().split()&lt;br /&gt;
        if len(line) != 2:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
        n, m = map(int, line)&lt;br /&gt;
        if not (1 &amp;lt;= n &amp;lt;= 100 and 1 &amp;lt;= m &amp;lt;= 100):&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
        matrice = []&lt;br /&gt;
        # Citește matricea din fișierul de intrare&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            row = list(map(int, fin.readline().split()))&lt;br /&gt;
            # Verifică dacă elementele matricei sunt conform cerințelor&lt;br /&gt;
            if not all(x &amp;lt;= 1000000 for x in row):&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrice.append(row)&lt;br /&gt;
&lt;br /&gt;
        return n, m, matrice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def vecini1(n, m, matrice):&lt;br /&gt;
    a = [[0] * (m + 2) for i in range(n + 2)]&lt;br /&gt;
    cnt = 0&lt;br /&gt;
&lt;br /&gt;
    # Adăugarea de margini de numere mari în matrice&lt;br /&gt;
    for i in range(1, n + 1):&lt;br /&gt;
        for j in range(1, m + 1):&lt;br /&gt;
            a[i][j] = matrice[i-1][j-1]&lt;br /&gt;
        a[i][0] = 1000001&lt;br /&gt;
        a[i][m + 1] = 1000002&lt;br /&gt;
    for j in range(1, m + 1):&lt;br /&gt;
        a[0][j] = 1000003&lt;br /&gt;
        a[n + 1][j] = 1000004&lt;br /&gt;
&lt;br /&gt;
    # Parcurgerea matricei pentru a verifica vecinii&lt;br /&gt;
    for i in range(1, n + 1):&lt;br /&gt;
        for j in range(1, m + 1):&lt;br /&gt;
            if a[i][j - 1] != a[i][j + 1] and a[i][j - 1] != a[i - 1][j] and a[i][j - 1] != a[i + 1][j] and a[i][j + 1] != a[i - 1][j] and a[i - 1][j] != a[i + 1][j] and a[i][j + 1] != a[i + 1][j]:&lt;br /&gt;
                cnt += 1&lt;br /&gt;
&lt;br /&gt;
    return cnt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m, matrice = citire_matrice()&lt;br /&gt;
    col_divizibile = vecini1(n, m, matrice)&lt;br /&gt;
    with open(&amp;quot;vecini1.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        fout.write(str(col_divizibile) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    print(&amp;quot;Numarul de elemente cu toti vecinii diferiti intre ei este:&amp;quot;, col_divizibile)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod este scris în limbajul de programare Python și conține două funcții:&lt;br /&gt;
 &lt;br /&gt;
 Funcția citire_matrice():&lt;br /&gt;
&lt;br /&gt;
 Deschide fișierul &amp;quot;vecini1.in&amp;quot; și citește din el două numere întregi, n și m.&lt;br /&gt;
 Verifică dacă valorile citite respectă restricțiile impuse (n și m trebuie să fie între 1 și 100).&lt;br /&gt;
 Citește matricea de dimensiune n x m din fișier, verificând dacă valorile sunt conforme cu restricțiile (toate elementele matricei trebuie să fie mai mici sau egale cu 1000000).&lt;br /&gt;
 Returnează dimensiunile matricei n și m, împreună cu matricea citită.&lt;br /&gt;
 Funcția vecini1(n, m, matrice):&lt;br /&gt;
&lt;br /&gt;
 Inițializează o matrice a cu n+2 rânduri și m+2 coloane, toate inițializate cu valoarea 0.&lt;br /&gt;
 Adaugă o margine de numere mari în jurul matricei matrice, astfel încât să fie mai ușor de verificat vecinii.&lt;br /&gt;
 Parcurge matricea a și verifică dacă fiecare element are toți vecinii diferiți între ei.&lt;br /&gt;
 În caz afirmativ, incrementeză numărul de astfel de elemente.&lt;br /&gt;
 Returnează numărul de elemente cu toți vecinii diferiți între ei.&lt;br /&gt;
 La final, se citește matricea din fișierul &amp;quot;vecini1.in&amp;quot;, se apelează funcția vecini1() cu parametrii corespunzători și se scrie rezultatul în fișierul &amp;quot;vecini1.out&amp;quot;. Rezultatul este afișat și în consolă&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1450_-_Memory_003&amp;diff=4012</id>
		<title>1450 - Memory 003</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1450_-_Memory_003&amp;diff=4012"/>
		<updated>2023-04-22T11:32:20Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/1450/memory003] == Cerinţa == Se dă o matrice cu &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; coloane, având elementele numere naturale nenule. Aflaţi câte coloane ale matricei au produsul elementelor divizibil cu un număr dat &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;memory003.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii câte &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin spații, repre...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/1450/memory003]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;m&#039;&#039;&#039; linii şi &#039;&#039;&#039;n&#039;&#039;&#039; coloane, având elementele numere naturale nenule. Aflaţi câte coloane ale matricei au produsul elementelor divizibil cu un număr dat &#039;&#039;&#039;p&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;memory003.in&#039;&#039;&#039; conține pe prima linie numerele &#039;&#039;&#039;m&#039;&#039;&#039;, &#039;&#039;&#039;n&#039;&#039;&#039; şi &#039;&#039;&#039;p&#039;&#039;&#039;, iar pe următoarele &#039;&#039;&#039;m&#039;&#039;&#039; linii câte &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spații, reprezentând elementele matricei.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Fișierul de ieșire &#039;&#039;&#039;memory003.out&#039;&#039;&#039; va conține pe prima linie numărul de coloane ale matricei pentru care produsul elementelor este divizibil cu &#039;&#039;&#039;p&#039;&#039;&#039;. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ m ≤ 1.000&#039;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n ≤ 300&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ p ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* elementele matricei sunt mai mici sau egale cu &#039;&#039;&#039;100&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;memory003.in&#039;&#039;&#039;&lt;br /&gt;
: 2 3 10&lt;br /&gt;
: 4 7 5&lt;br /&gt;
: 25 8 6&lt;br /&gt;
; &#039;&#039;&#039;memory003.out&#039;&#039;&#039;&lt;br /&gt;
: 2&lt;br /&gt;
==== Explicatie ====&lt;br /&gt;
Produsul elementelor pe coloane este &#039;&#039;&#039;100&#039;&#039;&#039;, &#039;&#039;&#039;56&#039;&#039;&#039;, respectiv &#039;&#039;&#039;30&#039;&#039;&#039;. Avem astfel &#039;&#039;&#039;două&#039;&#039;&#039; coloane cu produsul elementelor divizibil cu &#039;&#039;&#039;10&#039;&#039;&#039;.&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    # Deschide fișierul de intrare și citește n, m și p&lt;br /&gt;
    with open(&amp;quot;memory003.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        n, m, p = map(int, fin.readline().split())&lt;br /&gt;
        if not (1 &amp;lt;= n &amp;lt;= 300 and 1 &amp;lt;= m &amp;lt;= 1000 and 1 &amp;lt;= p &amp;lt;= 1000000000):&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
        matrice = []&lt;br /&gt;
        # Citește matricea din fișierul de intrare&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            row = list(map(int, fin.readline().split()))&lt;br /&gt;
            # Verifică dacă elementele matricei sunt conform cerințelor&lt;br /&gt;
            if not all(x &amp;lt;= 100 for x in row):&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrice.append(row)&lt;br /&gt;
&lt;br /&gt;
        return n, m, p, matrice&lt;br /&gt;
&lt;br /&gt;
def Memory003(n, m, p, matrice):&lt;br /&gt;
    count = 0&lt;br /&gt;
    for j in range(m):&lt;br /&gt;
        produs = 1&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            produs *= matrice[i][j]&lt;br /&gt;
        if produs % p == 0:&lt;br /&gt;
            count += 1&lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m, p, matrice = citire_matrice()&lt;br /&gt;
    col_divizibile = Memory003(n, m, p, matrice)&lt;br /&gt;
    with open(&amp;quot;memory003.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        fout.write(str(col_divizibile) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    print(&amp;quot;Numarul de coloane cu produsul divizibil cu p este:&amp;quot;, col_divizibile)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod este o soluție pentru problema &amp;quot;Memory003&amp;quot; din cadrul concursului &amp;quot;ONI 2021&amp;quot; (Olimpiada Națională de Informatică). Scopul problemei este de a găsi numărul de coloane dintr-o matrice ale căror elemente au un produs divizibil cu un număr dat.&lt;br /&gt;
&lt;br /&gt;
 Funcția read_matrix() citește matricea din fișierul de intrare &amp;quot;memory003.in&amp;quot; și verifică dacă dimensiunile matricei și valorile elementelor îndeplinesc cerințele impuse de problema. Funcția returnează dimensiunile matricei n și m, numărul p, și matricea propriu-zisă.&lt;br /&gt;
&lt;br /&gt;
 Funcția Memory003(n, m, p, matrice) primește dimensiunile matricei, numărul p, și matricea propriu-zisă și calculează numărul de coloane ale căror elemente au un produs divizibil cu p. Pentru fiecare coloană j a matricei, funcția calculează produsul elementelor de pe fiecare linie i, folosind un for loop îmbricat. Dacă produsul este divizibil cu p, se incrementează numărul de coloane găsite.&lt;br /&gt;
&lt;br /&gt;
 În funcția principală, se apelează read_matrix() pentru a citi datele din fișierul de intrare, apoi se apelează Memory003() pentru a rezolva problema. Rezultatul este scris în fișierul de ieșire &amp;quot;memory003.out&amp;quot; și afișat pe ecran.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0192_-_Sum_Col_Max&amp;diff=4011</id>
		<title>0192 - Sum Col Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0192_-_Sum_Col_Max&amp;diff=4011"/>
		<updated>2023-04-22T11:21:19Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/192/sumcolmax] == Enunt == Se dă 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 și elemente numere întregi. == Cerinţa == Să se afișeze elementele de pe coloana din matrice cu suma elementelor maximă == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;sumcolmax.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;, iar următoarele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; linii câte &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; numere întregi, reprezentând elementele matricei. == Date de ieșire =...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/192/sumcolmax]&lt;br /&gt;
== Enunt ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane și elemente numere întregi.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se afișeze elementele de pe coloana din matrice cu suma elementelor maximă&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;sumcolmax.in&#039;&#039;&#039; conţine pe prima linie numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;, iar următoarele &#039;&#039;&#039;n&#039;&#039;&#039; linii câte &#039;&#039;&#039;m&#039;&#039;&#039; numere întregi, reprezentând elementele matricei.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Fişierul de ieşire &#039;&#039;&#039;sumcolmax.ou&#039;&#039;&#039;t va conţine &#039;&#039;&#039;1&#039;&#039;&#039; linii, cu n valori, separate prin spații, reprezentând elementele de pe coloana cu suma elementelor maximă. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n,m ≤ 25&#039;&#039;&#039;&lt;br /&gt;
* elementele matricei aparțin intervalului &#039;&#039;&#039;[-1000,1000]&#039;&#039;&#039;&lt;br /&gt;
* dacă sunt mai multe coloane cu suma elementelor maximă, se va considera coloana cu indicele mai mic&lt;br /&gt;
* elementele coloanei rezultat se afișează de sus în jos&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;sumcolmax.in&#039;&#039;&#039;&lt;br /&gt;
: 4 5&lt;br /&gt;
: -2 -9 7 9 -7&lt;br /&gt;
: 1 -7 -8 -1 4&lt;br /&gt;
: 8 2 5 7 2&lt;br /&gt;
: 8 -9 -7 10 -9&lt;br /&gt;
; &#039;&#039;&#039;sumcolmax.out&#039;&#039;&#039;&lt;br /&gt;
: 9 -1 7 10&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def read_matrix():&lt;br /&gt;
    # Deschide fișierul de intrare și citește n și m&lt;br /&gt;
    with open(&amp;quot;sumcolmax.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        n, m = map(int, fin.readline().split())&lt;br /&gt;
&lt;br /&gt;
        # Verifică dacă datele sunt conform cerințelor&lt;br /&gt;
        if not (1 &amp;lt;= n &amp;lt;= 25 and 1 &amp;lt;= m &amp;lt;= 25):&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
        matrice = []&lt;br /&gt;
&lt;br /&gt;
        # Citește matricea din fișierul de intrare&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            row = list(map(int, fin.readline().split()))&lt;br /&gt;
&lt;br /&gt;
            # Verifică dacă elementele matricei sunt conform cerințelor&lt;br /&gt;
            if not all(-1000 &amp;lt;= x &amp;lt;= 1000 for x in row):&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrice.append(row)&lt;br /&gt;
&lt;br /&gt;
        return n, m, matrice&lt;br /&gt;
&lt;br /&gt;
def sumcolmax(n, m, matrice):&lt;br /&gt;
    smax = -100001&lt;br /&gt;
    ind = 0&lt;br /&gt;
    for j in range(m):&lt;br /&gt;
        s = 0&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            s += matrice[i][j]&lt;br /&gt;
        if s &amp;gt; smax:&lt;br /&gt;
            smax = s&lt;br /&gt;
            ind = j&lt;br /&gt;
&lt;br /&gt;
    max_col = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        max_col.append(matrice[i][ind])&lt;br /&gt;
    return max_col&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m, matrice = read_matrix()&lt;br /&gt;
    max_col = sumcolmax(n, m, matrice)&lt;br /&gt;
    with open(&amp;quot;sumcolmax.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        fout.write(&amp;quot; &amp;quot;.join(map(str, max_col)))&lt;br /&gt;
    print(&amp;quot;Elementele de pe coloana cu suma maxima sunt:&amp;quot;, max_col)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod primește o matrice cu n linii și m coloane, precum și suma tuturor elementelor de pe fiecare coloană a matricei. Scopul codului este de a identifica coloana cu cea mai mare sumă și de a returna elementele de pe acea coloană într-o listă. În primul rând, funcția read_matrix deschide fișierul de intrare, citește n și m, și apoi citeste matricea din fișier. Dacă datele de intrare nu sunt conforme cu cerințele, codul va afișa un mesaj de eroare și se va opri. Funcția sumcolmax parcurge fiecare coloană și calculează suma tuturor elementelor de pe acea coloană. Dacă suma este mai mare decât suma maximă până în acel moment, atunci această coloană devine noua coloană cu suma maximă. Apoi, funcția creează o listă care conține elementele de pe coloana cu suma maximă și o returnează. În if _name_ == &amp;quot;_main_&amp;quot;:, codul citește matricea cu read_matrix, calculează elementele de pe coloana cu suma maximă cu sumcolmax, scrie rezultatul în fișierul de ieșire sumcolmax.out, și afișează elementele de pe coloana cu suma maximă.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1495_-_Memory_004&amp;diff=4010</id>
		<title>1495 - Memory 004</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1495_-_Memory_004&amp;diff=4010"/>
		<updated>2023-04-22T11:05:25Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/1495/memory004] == Cerinţa == Se dă o matrice cu &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; coloane, având elementele numere naturale nenule. Parcurgând matricea pe coloane de sus în jos şi de la stânga la dreapta, determinaţi lungimea maximă a unei secvenţe de numere prime. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;memory004.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii câte &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/1495/memory004]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;m&#039;&#039;&#039; linii şi &#039;&#039;&#039;n&#039;&#039;&#039; coloane, având elementele numere naturale nenule. Parcurgând matricea pe coloane de sus în jos şi de la stânga la dreapta, determinaţi lungimea maximă a unei secvenţe de numere prime.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;memory004.in&#039;&#039;&#039; conține pe prima linie numerele &#039;&#039;&#039;m&#039;&#039;&#039; şi &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarele &#039;&#039;&#039;m&#039;&#039;&#039; linii câte &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații, reprezentând elementele matricei.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Fișierul de ieșire &#039;&#039;&#039;memory004.out&#039;&#039;&#039; va conține pe prima linie numărul &#039;&#039;&#039;L&#039;&#039;&#039;, reprezentând lungimea maximă a unei secvenţe de numere prime din matrice obţinută prin parcurgerea matricei pe coloane, de sus în jos şi de la stânga la dreapta. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2 ≤ m , n ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
*elementele matricei sunt numere naturale mai mici decât &#039;&#039;&#039;10.000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;memory004.in&#039;&#039;&#039;&lt;br /&gt;
: 3 4&lt;br /&gt;
: 1 6 5 11 &lt;br /&gt;
: 2 4 3 9&lt;br /&gt;
: 2 4 7 8&lt;br /&gt;
; &#039;&#039;&#039;memory004.out&#039;&#039;&#039;&lt;br /&gt;
: 4&lt;br /&gt;
==== Explicatie ====&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;3&#039;&#039;&#039; linii şi &#039;&#039;&#039;4&#039;&#039;&#039; coloane. Parcurgând matricea pe coloane de sus în jos şi de la stânga la dreapta se obţin secvenţele de numere prime, puse în evidenţă cu ajutorul culorilor, în matricea de mai jos:&lt;br /&gt;
: 1 6 &#039;&#039;&#039;5 11&#039;&#039;&#039;&lt;br /&gt;
: &#039;&#039;&#039;2&#039;&#039;&#039; 4 &#039;&#039;&#039;3&#039;&#039;&#039; 9&lt;br /&gt;
: &#039;&#039;&#039;2&#039;&#039;&#039; 4 &#039;&#039;&#039;7&#039;&#039;&#039; 8&lt;br /&gt;
Secvenţele de numere prime sunt 2,2 şi 5,3,7,11, lungimea maximă fiind &#039;&#039;&#039;4&#039;&#039;&#039;.&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import math&lt;br /&gt;
def is_prime(n):&lt;br /&gt;
    if n &amp;lt; 2:&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(2, int(n**0.5) + 1):&lt;br /&gt;
        if n % i == 0:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    try:&lt;br /&gt;
        with open(&amp;quot;memory004.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
            n, m = map(int, fin.readline().split())&lt;br /&gt;
            if 2 &amp;lt;= n &amp;lt;= 1000 and 2 &amp;lt;= m &amp;lt;= 1000:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrice = []&lt;br /&gt;
            for linie in range(n):&lt;br /&gt;
                linie_matrice = []&lt;br /&gt;
                valori = fin.readline().split()&lt;br /&gt;
                for coloana in range(m):&lt;br /&gt;
                    try:&lt;br /&gt;
                        valoare = int(valori[coloana])&lt;br /&gt;
                        if valoare &amp;lt;= 10000:&lt;br /&gt;
                            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                            linie_matrice.append(valoare)&lt;br /&gt;
                        else:&lt;br /&gt;
                            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                            exit()&lt;br /&gt;
                    except ValueError:&lt;br /&gt;
                        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
                        exit()&lt;br /&gt;
                matrice.append(linie_matrice)&lt;br /&gt;
&lt;br /&gt;
            return n, m, matrice&lt;br /&gt;
    except FileNotFoundError:&lt;br /&gt;
        print(&amp;quot;Fisierul memory004.in nu exista.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def Memory004(n, m, matrice):&lt;br /&gt;
    L_max = 0&lt;br /&gt;
    for j in range(m):&lt;br /&gt;
        L = 0&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            if is_prime(matrice[i][j]):&lt;br /&gt;
                L += 1&lt;br /&gt;
                if L &amp;gt; L_max:&lt;br /&gt;
                    L_max = L&lt;br /&gt;
            else:&lt;br /&gt;
                L = 0&lt;br /&gt;
    return L_max&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m, matrice = citire_matrice()&lt;br /&gt;
    L_max = Memory004(n, m, matrice)&lt;br /&gt;
    print(&amp;quot;Lungimea maximă a unei secvenţe de numere prime este:&amp;quot;, L_max)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acesta este un cod Python care rezolvă problema &amp;quot;Memory004&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 Funcția &amp;quot;is_prime(n)&amp;quot; este folosită pentru a verifica dacă un număr este prim sau nu. Funcția primește un număr întreg n și returnează valoarea True dacă n este prim și False în caz contrar.&lt;br /&gt;
&lt;br /&gt;
 Funcția &amp;quot;citire_matrice()&amp;quot; este folosită pentru a citi matricea din fișierul &amp;quot;memory004.in&amp;quot;. Aceasta verifică dacă valorile m și n sunt conforme cu restricțiile impuse, apoi citeste valorile matricei și le adaugă într-o listă bidimensională &amp;quot;matrice&amp;quot;. Funcția returnează n, m și matricea.&lt;br /&gt;
&lt;br /&gt;
 Funcția &amp;quot;Memory004(n, m, matrice)&amp;quot; primește parametrii n, m și matricea și calculează lungimea maximă a unei secvențe de numere prime din matrice, parcurgând matricea pe coloane, de sus în jos și de la stânga la dreapta. Funcția utilizează funcția &amp;quot;is_prime(n)&amp;quot; pentru a verifica dacă un element al matricei este prim sau nu și utilizează o variabilă L pentru a număra lungimea secvenței de numere prime pe coloană. Variabila L_max este utilizată pentru a reține lungimea maximă a unei secvențe de numere prime găsită până în acel moment.&lt;br /&gt;
&lt;br /&gt;
 În funcția &amp;quot;main&amp;quot;, se apelează funcția &amp;quot;citire_matrice()&amp;quot; pentru a obține datele de intrare și se apelează apoi funcția &amp;quot;Memory004(n, m, matrice)&amp;quot; pentru a obține lungimea maximă a unei secvențe de numere prime. Rezultatul este afișat în consolă.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1444_-_Memory_001&amp;diff=4009</id>
		<title>1444 - Memory 001</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1444_-_Memory_001&amp;diff=4009"/>
		<updated>2023-04-22T10:57:24Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/1444/memory001] == Cerinţa == Se dă o matrice cu &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; coloane şi elemente numere naturale. Determinaţi coloana din matrice pentru care suma elementelor este minimă. Dacă sunt mai multe coloane cu suma minimă, se va afişa indicele minim al unei asemenea coloane. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;memory001.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; reprezentând dimensiunile matrice...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/1444/memory001]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;m&#039;&#039;&#039; linii şi &#039;&#039;&#039;n&#039;&#039;&#039; coloane şi elemente numere naturale. Determinaţi coloana din matrice pentru care suma elementelor este minimă. Dacă sunt mai multe coloane cu suma minimă, se va afişa indicele minim al unei asemenea coloane.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;memory001.in&#039;&#039;&#039; conține pe prima linie numerele &#039;&#039;&#039;m&#039;&#039;&#039; şi &#039;&#039;&#039;n&#039;&#039;&#039; reprezentând dimensiunile matricei, iar pe următoarele &#039;&#039;&#039;m&#039;&#039;&#039; linii câte &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spații reprezentând elementele matricei.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Fișierul de ieșire &#039;&#039;&#039;memory001.out&#039;&#039;&#039; va conține pe prima linie cel mai mic indice al unei coloane din matrice având suma elementelor minimă. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2 ≤ m , n ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
* elementele matricei vor fi mai mici decât &#039;&#039;&#039;2.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* numerotarea liniilor și a coloanelor matricei începe de la &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;memory001.in&#039;&#039;&#039;&lt;br /&gt;
: 2 3&lt;br /&gt;
: 1 2 3 &lt;br /&gt;
: 7 10 5&lt;br /&gt;
; &#039;&#039;&#039;memory001.out&#039;&#039;&#039;&lt;br /&gt;
: 1&lt;br /&gt;
==== Explicatie ====&lt;br /&gt;
Suma elementelor pe cele trei coloane este &#039;&#039;&#039;8&#039;&#039;&#039; , &#039;&#039;&#039;12&#039;&#039;&#039;, respectiv &#039;&#039;&#039;8&#039;&#039;&#039;. Coloana cu indice minim având suma elementelor minimă este coloana &#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;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def read_matrix():&lt;br /&gt;
    try:&lt;br /&gt;
        with open(&amp;quot;memory001.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
            n, m = map(int, fin.readline().split())&lt;br /&gt;
            if 2 &amp;lt;= n &amp;lt;= 1000 and 2 &amp;lt;= m &amp;lt;= 2000000000:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrix = []&lt;br /&gt;
            for linie in range(n):&lt;br /&gt;
                linie_matrice = []&lt;br /&gt;
                valori = fin.readline().split()&lt;br /&gt;
                for coloana in range(m):&lt;br /&gt;
                    try:&lt;br /&gt;
                        valoare = int(valori[coloana])&lt;br /&gt;
                        if valoare &amp;lt;= 10000:&lt;br /&gt;
                            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                            linie_matrice.append(valoare)&lt;br /&gt;
                        else:&lt;br /&gt;
                            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                            exit()&lt;br /&gt;
                    except ValueError:&lt;br /&gt;
                        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
                        exit()&lt;br /&gt;
                matrix.append(linie_matrice)&lt;br /&gt;
&lt;br /&gt;
            return n, m, matrix&lt;br /&gt;
    except FileNotFoundError:&lt;br /&gt;
        print(&amp;quot;Fisierul memory001.in nu exista.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def min_coloana(n, m, matrix):&lt;br /&gt;
    sums = [0] * m&lt;br /&gt;
    for j in range(m):&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            sums[j] += matrix[i][j]&lt;br /&gt;
&lt;br /&gt;
    min_sum = min(sums)&lt;br /&gt;
    min_index = sums.index(min_sum)&lt;br /&gt;
&lt;br /&gt;
    return min_index + 1&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m, matrix = read_matrix()&lt;br /&gt;
    min= min_coloana(n, m, matrix)&lt;br /&gt;
    with open(&amp;quot;memory001.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        fout.write(str(min))&lt;br /&gt;
    print(&amp;quot;Cel mai mic indice este:&amp;quot;, min)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod implementează o funcție citire_matrice() care citeste o matrice dintr-un fișier de intrare (Memory001.in). Mai întâi se deschide fișierul de intrare, se citesc dimensiunile matricei (m, n) de pe prima linie și se verifică dacă acestea sunt în limitele impuse de cerințe (2 ≤ m , n ≤ 1000). Dacă valorile sunt valide, se citesc valorile matricei de pe următoarele n linii, fiecare linie conținând m elemente. Pentru fiecare element se verifică dacă este un număr întreg și dacă respectă restricțiile impuse de cerințe (elementele matricei vor fi mai mici decât 2.000.000.000). Dacă toate verificările sunt trecute cu succes, matricea este returnată sub forma unei liste de liste.&lt;br /&gt;
&lt;br /&gt;
 Funcția Memory001(n, m, matrice) primește ca argumente dimensiunile matricei și matricea însăși și determină coloana din matrice pentru care suma elementelor este minimă. Mai întâi se deschide fișierul de intrare, se initializează un vector v cu m elemente inițializate cu zero, se parcurge fiecare linie a matricei și se adună elementele de pe fiecare coloană în vectorul v. După ce toate elementele au fost adunate, se găsește indicele elementului minim din vectorul v, care reprezintă coloana cu suma elementelor minimă. Acest indice este scris în fișierul de ieșire (memory001.out).&lt;br /&gt;
&lt;br /&gt;
 În funcția main se apelează mai întâi funcția citire_matrice() pentru a obține matricea din fișierul de intrare. Apoi se apelează funcția Memory001(n, m, matrice) pentru a obține cel mai mic indice al unei coloane din matrice având suma elementelor minimă, iar acest indice este afișat la ieșire.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0193_-_Interschimbare_Linii&amp;diff=4008</id>
		<title>0193 - Interschimbare Linii</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0193_-_Interschimbare_Linii&amp;diff=4008"/>
		<updated>2023-04-22T10:49:38Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/193/interschimbarelinii] == Enunt == Se dă 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 și elemente numere naturale diferite. == Cerinţa == Să se afișeze matricea obținută prin interschimbarea în matricea dată a liniei care conține valoarea maximă cu linia care conține valoarea minim == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;interschimbarelinii.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;, iar pe următoa...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/193/interschimbarelinii]&lt;br /&gt;
== Enunt ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane și elemente numere naturale diferite.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se afișeze matricea obținută prin interschimbarea în matricea dată a liniei care conține valoarea maximă cu linia care conține valoarea minim&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;interschimbarelinii.in&#039;&#039;&#039; conţine pe prima linie numerele &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;, iar pe următoarele &#039;&#039;&#039;n&#039;&#039;&#039; linii câte &#039;&#039;&#039;m&#039;&#039;&#039; numere naturale diferite.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Fişierul de ieşire &#039;&#039;&#039;interschimbarelinii.out&#039;&#039;&#039; va conţine matricea transformată, câte o linia matricei pe o linie a fișierului, elementele de pe fiecare linie fiind separate printr-un spațiu. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n,m ≤ 25&#039;&#039;&#039;&lt;br /&gt;
* numerele matricei vor fi mai mici decât 10000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;interschimbarelinii.in&#039;&#039;&#039;&lt;br /&gt;
: 4 6&lt;br /&gt;
: 8 33 35 28 20 10&lt;br /&gt;
: 23 17 24 6 22 31&lt;br /&gt;
: 15 25 12 43 27 13&lt;br /&gt;
: 21 3 19 29 5 30&lt;br /&gt;
; &#039;&#039;&#039;interschimbarelinii.out&#039;&#039;&#039;&lt;br /&gt;
: 8 33 35 28 20 10 &lt;br /&gt;
: 23 17 24 6 22 31 &lt;br /&gt;
: 21 3 19 29 5 30 &lt;br /&gt;
: 15 25 12 43 27 13 &lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    try:&lt;br /&gt;
        with open(&amp;quot;interschimbarelinii.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
            n, m = map(int, fin.readline().split())&lt;br /&gt;
            if 1 &amp;lt;= n &amp;lt;= 25 and 1 &amp;lt;= m &amp;lt;= 25:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrice = []&lt;br /&gt;
            for linie in range(n):&lt;br /&gt;
                linie_matrice = []&lt;br /&gt;
                valori = fin.readline().split()&lt;br /&gt;
                for coloana in range(m):&lt;br /&gt;
                    try:&lt;br /&gt;
                        valoare = int(valori[coloana])&lt;br /&gt;
                        if valoare &amp;lt;= 10000:&lt;br /&gt;
                            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                            linie_matrice.append(valoare)&lt;br /&gt;
                        else:&lt;br /&gt;
                            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                            exit()&lt;br /&gt;
                    except ValueError:&lt;br /&gt;
                        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
                        exit()&lt;br /&gt;
                matrice.append(linie_matrice)&lt;br /&gt;
&lt;br /&gt;
            return n, m, matrice&lt;br /&gt;
    except FileNotFoundError:&lt;br /&gt;
        print(&amp;quot;Fisierul interschimbarelinii.in nu exista.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def interschimbarelinii():&lt;br /&gt;
    with open(&amp;quot;interschimbarelinii.in&amp;quot;, &amp;quot;r&amp;quot;) as fin, open(&amp;quot;interschimbarelinii.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        n, m = map(int, fin.readline().split())&lt;br /&gt;
        a = [[0 for j in range(m)] for i in range(n)]&lt;br /&gt;
        mini = 10001&lt;br /&gt;
        maxi = 0&lt;br /&gt;
        lmax = 0&lt;br /&gt;
        lmin = 0&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            line = list(map(int, fin.readline().split()))&lt;br /&gt;
            for j in range(m):&lt;br /&gt;
                a[i][j] = line[j]&lt;br /&gt;
                if a[i][j] &amp;gt; maxi:&lt;br /&gt;
                    maxi = a[i][j]&lt;br /&gt;
                    lmax = i&lt;br /&gt;
                if a[i][j] &amp;lt; mini:&lt;br /&gt;
                    mini = a[i][j]&lt;br /&gt;
                    lmin = i&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            for j in range(m):&lt;br /&gt;
                if i == lmax:&lt;br /&gt;
                    fout.write(str(a[lmin][j]) + &amp;quot; &amp;quot;)&lt;br /&gt;
                elif i == lmin:&lt;br /&gt;
                    fout.write(str(a[lmax][j]) + &amp;quot; &amp;quot;)&lt;br /&gt;
                else:&lt;br /&gt;
                    fout.write(str(a[i][j]) + &amp;quot; &amp;quot;)&lt;br /&gt;
            fout.write(&amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m, a = citire_matrice()&lt;br /&gt;
    inter=interschimbarelinii()&lt;br /&gt;
    print(&amp;quot;Matricea transformată este: &amp;quot;, inter)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 codul este scris in limbajul de programare Python si rezolva problema &amp;quot;Se dă o matrice cu n linii și m coloane și elemente numere naturale diferite. Să se afișeze matricea obținută prin interschimbarea în matricea dată a liniei care conține valoarea maximă cu linia care conține valoarea minimă&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 Functia citire_matrice() citeste matricea din fisierul de intrare &amp;quot;interschimbarelinii.in&amp;quot; si verifica daca datele respecta restrictiile impuse (1 &amp;lt;= n,m &amp;lt;= 25 si numerele din matrice sunt mai mici decat 10000). Daca datele nu respecta restrictiile sau fisierul nu exista, se afiseaza un mesaj corespunzator si programul se opreste.&lt;br /&gt;
&lt;br /&gt;
 Functia interschimbarelinii() citeste matricea din fisierul de intrare, interschimba liniile care contin valorile maxima si minima si scrie matricea rezultata in fisierul de iesire &amp;quot;interschimbarelinii.out&amp;quot;. Pentru a interschimba liniile, se folosesc variabilele mini si maxi pentru a retine valorile minima si maxima si variabilele lmin si lmax pentru a retine indecsii liniilor corespunzatoare. Apoi, se parcurge matricea si se scriu in fisierul de iesire valorile interschimbate sau, daca linia curenta nu contine valorile minima sau maxima, se scriu valorile acelei linii.&lt;br /&gt;
&lt;br /&gt;
 In _main_, se apeleaza functia citire_matrice() pentru a obtine matricea si se apeleaza functia interschimbarelinii() pentru a rezolva problema.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0224_-_Rotire&amp;diff=3992</id>
		<title>0224 - Rotire</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0224_-_Rotire&amp;diff=3992"/>
		<updated>2023-04-22T09:35:15Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/224/rotire] == Cerinţa == Se consideră tabloul bidimensional cu &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; coloane şi elemente numere naturale. Să se construiască un nou tablou bidimensional 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, obţinut din primul prin rotirea acestuia în sens trigonometric cu 90 o. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;rotire.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii c...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/224/rotire]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se consideră tabloul bidimensional cu &#039;&#039;&#039;m&#039;&#039;&#039; linii şi &#039;&#039;&#039;n&#039;&#039;&#039; coloane şi elemente numere naturale. Să se construiască un nou tablou bidimensional cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;m&#039;&#039;&#039; coloane, obţinut din primul prin rotirea acestuia în sens trigonometric cu 90 o.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;rotire.in&#039;&#039;&#039; conţine pe prima linie numerele &#039;&#039;&#039;m&#039;&#039;&#039; şi &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarele &#039;&#039;&#039;m&#039;&#039;&#039; linii câte &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spaţii, reprezentând elementele tabloului.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Fişierul de ieşire &#039;&#039;&#039;rotire.out&#039;&#039;&#039; va conţine tabloul nou construit, câte o linie a tabloului pe o linie a fişierului, elementele fiecărei linii fiind separare printr-un spaţiu. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2≤m,n≤10&#039;&#039;&#039;&lt;br /&gt;
* elementele tabloului sunt numere naturale mai mici decât &#039;&#039;&#039;2.000.000.000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;rotire.in&#039;&#039;&#039;&lt;br /&gt;
: 4 5&lt;br /&gt;
: 21 22 23 24 25&lt;br /&gt;
: 26 27 28 29 30&lt;br /&gt;
: 31 32 33 34 35&lt;br /&gt;
: 36 37 38 39 40 &lt;br /&gt;
; &#039;&#039;&#039;rotire.out&#039;&#039;&#039;&lt;br /&gt;
: 25 30 35 40&lt;br /&gt;
: 24 29 34 39&lt;br /&gt;
: 23 28 33 38&lt;br /&gt;
: 22 27 32 37&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    try:&lt;br /&gt;
        with open(&amp;quot;rotire.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
            n, m = map(int, fin.readline().split())&lt;br /&gt;
            if m % 2 == 0:&lt;br /&gt;
                print(&amp;quot;Numarul de coloane trebuie sa fie impar.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
            if 2 &amp;lt;= n &amp;lt;= 10 and 2 &amp;lt;= m &amp;lt;= 10:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
&lt;br /&gt;
            matrice = []&lt;br /&gt;
            for linie in range(n):&lt;br /&gt;
                linie_matrice = []&lt;br /&gt;
                valori = fin.readline().split()&lt;br /&gt;
                for coloana in range(m):&lt;br /&gt;
                    try:&lt;br /&gt;
                        valoare = int(valori[coloana])&lt;br /&gt;
                        if valoare &amp;lt;= 2000000000:&lt;br /&gt;
                            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                            linie_matrice.append(valoare)&lt;br /&gt;
                        else:&lt;br /&gt;
                            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                            exit()&lt;br /&gt;
                    except ValueError:&lt;br /&gt;
                        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
                        exit()&lt;br /&gt;
                matrice.append(linie_matrice)&lt;br /&gt;
&lt;br /&gt;
            return n, m, matrice&lt;br /&gt;
    except FileNotFoundError:&lt;br /&gt;
        print(&amp;quot;Fisierul rotire.in nu exista.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def rotire():&lt;br /&gt;
    # rotire matrice&lt;br /&gt;
    a_rotit = [[0 for j in range(n)] for i in range(m)]&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            a_rotit[m-j-1][i] = a[i][j]&lt;br /&gt;
&lt;br /&gt;
    # scriere matrice in fisier&lt;br /&gt;
    try:&lt;br /&gt;
        with open(&amp;quot;rotire.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
            for linie in a_rotit:&lt;br /&gt;
                fout.write(&amp;quot; &amp;quot;.join(str(x) for x in linie))&lt;br /&gt;
                fout.write(&amp;quot;\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Nu s-a putut scrie in fisierul rotire.out.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m, a = citire_matrice()&lt;br /&gt;
    rotire()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod are două funcții principale: citire_matrice() și rotire().&lt;br /&gt;
&lt;br /&gt;
 Funcția citire_matrice() este utilizată pentru a citi o matrice din fișierul &amp;quot;rotire.in&amp;quot;. În primul rând, se deschide fișierul și se citesc dimensiunile matricei. Apoi, se verifică dacă numărul de coloane este impar, pentru că este necesar pentru a putea face rotația. În continuare, se verifică dacă dimensiunile matricei sunt conforme cu restricțiile impuse (2&amp;lt;=n&amp;lt;=10 și 2&amp;lt;=m&amp;lt;=10). Dacă sunt conform, se începe citirea matricei linie cu linie. Pe fiecare linie, se citesc valorile și se verifică dacă sunt numere întregi și dacă respectă restricțiile impuse (valoarea &amp;lt;= 2000000000). Dacă toate verificările trec cu succes, matricea este returnată.&lt;br /&gt;
&lt;br /&gt;
 Funcția rotire() este utilizată pentru a roti matricea citită în sensul acelor de ceasornic și pentru a scrie matricea rotită în fișierul &amp;quot;rotire.out&amp;quot;. În primul rând, se creează o matrice goală a_rotit cu dimensiunile inverse ale matricei citite. Se parcurge matricea citită și se adaugă elementele în matricea rotită la poziția corespunzătoare. Apoi, matricea rotită este scrisă în fișierul &amp;quot;rotire.out&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 În main, se apelează mai întâi citire_matrice() pentru a obține matricea, apoi se apelează rotire() pentru a roti și scrie matricea rotită în fișier.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0212_-_Max_Min_Matrice&amp;diff=3962</id>
		<title>0212 - Max Min Matrice</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0212_-_Max_Min_Matrice&amp;diff=3962"/>
		<updated>2023-04-22T07:40:08Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/212/maxminmatrice] == Enunt == Se consideră tabloul bidimensional cu &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; coloane ce conţine numere naturale cu cel mult patru cifre fiecare. == Cerinţa == Să se determine cea mai mică valoare de pe fiecare linie, iar dintre acestea să se determine valoarea maximă. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;maxminmatrice.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/212/maxminmatrice]&lt;br /&gt;
== Enunt ==&lt;br /&gt;
Se consideră tabloul bidimensional cu &#039;&#039;&#039;m&#039;&#039;&#039; linii şi &#039;&#039;&#039;n&#039;&#039;&#039; coloane ce conţine numere naturale cu cel mult patru cifre fiecare.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se determine cea mai mică valoare de pe fiecare linie, iar dintre acestea să se determine valoarea maximă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;maxminmatrice.in&#039;&#039;&#039; conţine pe prima linie numerele &#039;&#039;&#039;m&#039;&#039;&#039; şi &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarele &#039;&#039;&#039;m&#039;&#039;&#039; linii câte &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spaţii, reprezentând elementele tabloului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;. Fişierul de ieşire &#039;&#039;&#039;maxminmatrice.out&#039;&#039;&#039; va conţine pe prima linie numărul cerut, cea mai mare valoare dintre minimele de pe linii. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2 ≤ m, n ≤ 23&#039;&#039;&#039;&lt;br /&gt;
* elementele tabloului sunt mai mici decât &#039;&#039;&#039;1000&#039;&#039;&#039;.&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;maxminmatrice.in&#039;&#039;&#039;&lt;br /&gt;
: 3 5&lt;br /&gt;
: 3 2 7 13 5&lt;br /&gt;
: 10 9 12 6 9&lt;br /&gt;
: 7 4 5 6 3&lt;br /&gt;
; &#039;&#039;&#039;maxminmatrice.out&#039;&#039;&#039;&lt;br /&gt;
: 6&lt;br /&gt;
==== Explicatie ====&lt;br /&gt;
Minimele de pe cele trei linii sunt: 2 6 3. Dintre acestea, cea mai mare valoare este 6.&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        m = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if m % 2 == 0:&lt;br /&gt;
            print(&amp;quot;Numarul de coloane trebuie sa fie impar.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
        if 2 &amp;lt;= n &amp;lt;= 23 and 2 &amp;lt;= m &amp;lt;= 23:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(n):&lt;br /&gt;
        linie_matrice = []&lt;br /&gt;
        for coloana in range(m):&lt;br /&gt;
            try:&lt;br /&gt;
                valoare = int(input(f&amp;quot;Introduceti un numar pentru linia {linie+1}, coloana {coloana+1}: &amp;quot;))&lt;br /&gt;
                if valoare &amp;lt;= 1000:&lt;br /&gt;
                    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                    linie_matrice.append(valoare)&lt;br /&gt;
                else:&lt;br /&gt;
                    print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                    exit()&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
        matrice.append(linie_matrice)&lt;br /&gt;
&lt;br /&gt;
    return n, m, matrice&lt;br /&gt;
&lt;br /&gt;
def maxminmatrice():&lt;br /&gt;
    with open(&amp;quot;maxminmatrice.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        n, m = map(int, fin.readline().split())&lt;br /&gt;
        a = []&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            mini = 1001&lt;br /&gt;
            row = list(map(int, fin.readline().split()))&lt;br /&gt;
            for j in range(m):&lt;br /&gt;
                if row[j] &amp;lt; mini:&lt;br /&gt;
                    mini = row[j]&lt;br /&gt;
            a.append(row)&lt;br /&gt;
        fin.close()&lt;br /&gt;
&lt;br /&gt;
    v = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        v.append(min(a[i]))&lt;br /&gt;
&lt;br /&gt;
    v.sort()&lt;br /&gt;
    with open(&amp;quot;maxminmatrice.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        fout.write(str(v[-1]))&lt;br /&gt;
        fout.close()&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    maxminmatrice()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod realizează două funcții: citire_matrice() și maxminmatrice(), și o verificare if _name_ == &amp;quot;_main_&amp;quot;: pentru a rula maxminmatrice() atunci când fișierul este executat direct.&lt;br /&gt;
&lt;br /&gt;
 Funcția citire_matrice() citeste datele de intrare de la tastatură și construiește o matrice, aplicând anumite restricții impuse pentru a verifica validitatea datelor introduse. Funcția întoarce dimensiunile matricei și matricea propriu-zisă.&lt;br /&gt;
&lt;br /&gt;
 Funcția maxminmatrice() citeste datele de intrare din fișierul &amp;quot;maxminmatrice.in&amp;quot; și calculează cea mai mică valoare de pe fiecare linie, iar dintre acestea calculează valoarea maximă. Rezultatul este scris în fișierul &amp;quot;maxminmatrice.out&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0220_-_Prod_Max&amp;diff=3961</id>
		<title>0220 - Prod Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0220_-_Prod_Max&amp;diff=3961"/>
		<updated>2023-04-22T07:33:39Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/220/prodmax] == Enunt == Se consideră tabloul bidimensional cu &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; coloane, care conţine doar valorile &amp;#039;&amp;#039;&amp;#039;{0,1,2}&amp;#039;&amp;#039;&amp;#039;. == Cerinţa == Să se determine numerele de ordine ale coloanelor pentru care produsul elementelor este maxim. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;prodmax.in&amp;#039;&amp;#039;&amp;#039; conţine pe prima linie numerele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; linii câte &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale separate p...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/220/prodmax]&lt;br /&gt;
== Enunt ==&lt;br /&gt;
Se consideră tabloul bidimensional cu &#039;&#039;&#039;m&#039;&#039;&#039; linii şi &#039;&#039;&#039;n&#039;&#039;&#039; coloane, care conţine doar valorile &#039;&#039;&#039;{0,1,2}&#039;&#039;&#039;.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se determine numerele de ordine ale coloanelor pentru care produsul elementelor este maxim.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &#039;&#039;&#039;prodmax.in&#039;&#039;&#039; conţine pe prima linie numerele &#039;&#039;&#039;m&#039;&#039;&#039; şi &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe următoarele &#039;&#039;&#039;m&#039;&#039;&#039; linii câte &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spaţii, reprezentând elementele tabloului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;.Fişierul de ieşire &#039;&#039;&#039;prodmax.out&#039;&#039;&#039; va conţine pe prima linie numerele cerute, separate prin spatii, în ordine crescătoare. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2≤m,n≤100&#039;&#039;&#039;&lt;br /&gt;
* numere de ordine ale liniilor sunt între &#039;&#039;&#039;1&#039;&#039;&#039; şi &#039;&#039;&#039;m&#039;&#039;&#039;&lt;br /&gt;
* numere de ordine ale coloanelor sunt între &#039;&#039;&#039;1&#039;&#039;&#039; şi &#039;&#039;&#039;n&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &#039;&#039;&#039;prodmax.in&#039;&#039;&#039;&lt;br /&gt;
: 4 4&lt;br /&gt;
: 2 1 1 0&lt;br /&gt;
: 1 1 1 1&lt;br /&gt;
: 2 2 2 1&lt;br /&gt;
: 1 2 1 1&lt;br /&gt;
; &#039;&#039;&#039;prodmax.out&#039;&#039;&#039;&lt;br /&gt;
: 1 2&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    with open(&amp;quot;prodmax.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        try:&lt;br /&gt;
            n, m = map(int, fin.readline().split())&lt;br /&gt;
            if 2 &amp;lt;= n &amp;lt;= 100 and 2 &amp;lt;= m &amp;lt;= 100:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                return n, m&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
        except ValueError:&lt;br /&gt;
            print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(m, n):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    with open(&amp;quot;prodmax.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        fin.readline()&lt;br /&gt;
        for linie in range(m):&lt;br /&gt;
            matrice.append(list(map(int, fin.readline().split())))&lt;br /&gt;
            if len(matrice[linie]) != n:&lt;br /&gt;
                print(&amp;quot;Dimensiunile matricei nu sunt cele așteptate.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
            for elem in matrice[linie]:&lt;br /&gt;
                if elem not in [0, 1, 2]:&lt;br /&gt;
                    print(&amp;quot;Elementele matricei nu sunt corecte.&amp;quot;)&lt;br /&gt;
                    exit()&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def prodmax():&lt;br /&gt;
    n, m = citire_lin_col()&lt;br /&gt;
    a = citeste_valori_matrice(m, n)&lt;br /&gt;
    pmax = -1&lt;br /&gt;
    for j in range(m):&lt;br /&gt;
        p = 1&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            p *= a[i][j]&lt;br /&gt;
        if p &amp;gt; pmax:&lt;br /&gt;
            pmax = p&lt;br /&gt;
    with open(&amp;quot;prodmax.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            p = 1&lt;br /&gt;
            for i in range(n):&lt;br /&gt;
                p *= a[i][j]&lt;br /&gt;
            if p == pmax:&lt;br /&gt;
                fout.write(str(j + 1) + &amp;quot; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    prodmax()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod implementează o funcție numită prodmax() care citește o matrice de dimensiune n x m și găsește numărul de coloană a produsului maxim de elemente din acea matrice.&lt;br /&gt;
&lt;br /&gt;
 Funcția citire_lin_col() este utilizată pentru a citi numerele întregi n și m din fișierul de intrare prodmax.in și verifica dacă sunt în conformitate cu restricțiile impuse (2 &amp;lt;= n &amp;lt;= 100 și 2 &amp;lt;= m &amp;lt;= 100).&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori_matrice(m, n) este utilizată pentru a citi valorile matricei din fișierul de intrare prodmax.in. În timpul citirii, se verifică dacă dimensiunile matricei sunt cele așteptate și dacă elementele matricei sunt corecte (adica 0, 1 sau 2).&lt;br /&gt;
&lt;br /&gt;
 În funcția principală prodmax(), matricea este citită prin apelarea funcțiilor citire_lin_col() și citeste_valori_matrice(m, n). Apoi, se găsește produsul maxim de elemente din fiecare coloană, iar coloana cu cel mai mare produs este înregistrată în variabila pmax. Această coloană este găsită prin parcurgerea matricei și înmulțind elementele de pe fiecare coloană, apoi comparând produsul cu pmax. Dacă produsul este egal cu pmax, atunci numărul de coloană este scris în fișierul de ieșire prodmax.out.&lt;br /&gt;
&lt;br /&gt;
 În general, acest cod utilizează citirea din fișier și scrierea în fișier pentru a efectua o operație matriceală simplă și returnează numărul de coloană cu cel mai mare produs de elemente.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0763_-_Matrice_3&amp;diff=3959</id>
		<title>0763 - Matrice 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0763_-_Matrice_3&amp;diff=3959"/>
		<updated>2023-04-22T07:26:31Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/763/matrice3] ---- == Cerinţa == Se dă 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 și elemente numere naturale și o valoare &amp;#039;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;#039;. Să se modifice cel mult &amp;#039;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;#039; elemente ale matricei, astfel încât toate liniile matricei să aibă aceeași sumă a elementelor. == Date de intrare == Programul citește de la tastatură numerele &amp;#039;&amp;#039;&amp;#039;n m k&amp;#039;&amp;#039;&amp;#039;, apoi elementele matricei, linie cu linie. == Date de ieșire ==  Pe ecran se va afișa...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/763/matrice3]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane și elemente numere naturale și o valoare &#039;&#039;&#039;k&#039;&#039;&#039;. Să se modifice cel mult &#039;&#039;&#039;k&#039;&#039;&#039; elemente ale matricei, astfel încât toate liniile matricei să aibă aceeași sumă a elementelor.&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;, apoi elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;. Programul va afișa pe ecran numărul numărul de elemente modificate, &#039;&#039;&#039;p&#039;&#039;&#039;, apoi &#039;&#039;&#039;p&#039;&#039;&#039; triplete &#039;&#039;&#039;i j x&#039;&#039;&#039;, cu semnificația: elementul din matrice de pe linia &#039;&#039;&#039;i&#039;&#039;&#039; și coloana &#039;&#039;&#039;j&#039;&#039;&#039; devine &#039;&#039;&#039;x&#039;&#039;&#039;. &#039;&#039;&#039;x&#039;&#039;&#039; trebuie să fie număr natural.În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n , m ≤ 100&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ k &amp;lt; n&#039;&#039;&#039;&lt;br /&gt;
* elementele matricei vor fi mai mici decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
* liniile și coloanele matricei sunt numerotate de la &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* pentru toate datele de test există soluție&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 4 2&lt;br /&gt;
: 7 4 1 6&lt;br /&gt;
: 5 5 7 3&lt;br /&gt;
: 4 7 2 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 2&lt;br /&gt;
: 1 3 3&lt;br /&gt;
: 3 1 8&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0566_-_Mese&amp;diff=3958</id>
		<title>0566 - Mese</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0566_-_Mese&amp;diff=3958"/>
		<updated>2023-04-22T07:18:34Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/566/mese] ---- == Cerinţa == Gigel este patronul unui &amp;#039;&amp;#039;&amp;#039;fast-food&amp;#039;&amp;#039;&amp;#039; destul de cunoscut. Restaurantul are formă dreptunghiulară, și conține mai multe mese de formă de asemenea dreptunghiulară dar de dimensiuni neregulate. Gigel vă pune la dispoziție planul restaurantului, sub forma unei 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, în care elementele care corespund unor spații libere sunt egale cu &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;, iar elementele care...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/566/mese]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Gigel este patronul unui &#039;&#039;&#039;fast-food&#039;&#039;&#039; destul de cunoscut. Restaurantul are formă dreptunghiulară, și conține mai multe mese de formă de asemenea dreptunghiulară dar de dimensiuni neregulate. Gigel vă pune la dispoziție planul restaurantului, sub forma unei matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane, în care elementele care corespund unor spații libere sunt egale cu &#039;&#039;&#039;0&#039;&#039;&#039;, iar elementele care fac parte din mese sunt egale cu &#039;&#039;&#039;1&#039;&#039;&#039;. Mai precis, mesele sunt zone dreptunghiulare maximale din matrice care au toate elementele &#039;&#039;&#039;1&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n m&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n*m&#039;&#039;&#039; numere naturale &#039;&#039;&#039;(0 sau 1)&#039;&#039;&#039;, dispuse pe &#039;&#039;&#039;n&#039;&#039;&#039; ,linii, reprezentând planul restaurantului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;. Programul va afișa pe ecran numerele &#039;&#039;C M&#039;&#039;&#039;, separate prin exact un spațiu reprezentând numărul total de mese și suprafața maximă a unei mese. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
*  &#039;&#039;&#039;1 ≤ n, m ≤ 250&#039;&#039;&#039;&lt;br /&gt;
* mesele nu au laturi comune&lt;br /&gt;
* nici o masă nu va conține spații libere&lt;br /&gt;
* suprafața unei mese este egală cu numărul de elemente din matrice din care este alcătuită&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5 6&lt;br /&gt;
: 0 0 1 1 1 0&lt;br /&gt;
: 0 0 1 1 1 0&lt;br /&gt;
: 1 0 0 0 0 1&lt;br /&gt;
: 1 0 1 1 0 1&lt;br /&gt;
: 1 0 1 1 0 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 4 6 &lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        m = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= n &amp;lt;= 250 and 1 &amp;lt;= m &amp;lt;= 250:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(n):&lt;br /&gt;
        linie_matrice = []&lt;br /&gt;
        for coloana in range(m):&lt;br /&gt;
            try:&lt;br /&gt;
                valoare = int(input(f&amp;quot;Introduceti un numar pentru linia {linie+1}, coloana {coloana+1}: &amp;quot;))&lt;br /&gt;
                if valoare in [0, 1]:&lt;br /&gt;
                    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                    linie_matrice.append(valoare)&lt;br /&gt;
                else:&lt;br /&gt;
                    print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                    exit()&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
        matrice.append(linie_matrice)&lt;br /&gt;
&lt;br /&gt;
    return n, m, matrice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def Mese(n, m, matrice):&lt;br /&gt;
    a = matrice&lt;br /&gt;
&lt;br /&gt;
    p = 0&lt;br /&gt;
    k = 0&lt;br /&gt;
    max_area = 0&lt;br /&gt;
&lt;br /&gt;
    # function to check if a cell is inside the matrix&lt;br /&gt;
    def inside(i, j):&lt;br /&gt;
        return i &amp;gt;= 0 and i &amp;lt; n and j &amp;gt;= 0 and j &amp;lt; m&lt;br /&gt;
&lt;br /&gt;
    # function to perform BFS from a cell&lt;br /&gt;
    def bfs(i, j):&lt;br /&gt;
        nonlocal a&lt;br /&gt;
        nonlocal max_area&lt;br /&gt;
        q = [(i, j)]&lt;br /&gt;
        area = 0&lt;br /&gt;
        while q:&lt;br /&gt;
            i, j = q.pop(0)&lt;br /&gt;
            if not inside(i, j) or a[i][j] != 1:&lt;br /&gt;
                continue&lt;br /&gt;
            a[i][j] = 2&lt;br /&gt;
            area += 1&lt;br /&gt;
            q.append((i - 1, j))&lt;br /&gt;
            q.append((i + 1, j))&lt;br /&gt;
            q.append((i, j - 1))&lt;br /&gt;
            q.append((i, j + 1))&lt;br /&gt;
        max_area = max(max_area, area)&lt;br /&gt;
&lt;br /&gt;
    # find the maximum area of a rectangle of 1s&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            if a[i][j] == 1:&lt;br /&gt;
                lat = 0&lt;br /&gt;
                col = 0&lt;br /&gt;
                while j + lat &amp;lt; m and a[i][j + lat] == 1:&lt;br /&gt;
                    lat += 1&lt;br /&gt;
                while i + col &amp;lt; n and a[i + col][j] == 1:&lt;br /&gt;
                    col += 1&lt;br /&gt;
                if lat * col &amp;gt; max_area:&lt;br /&gt;
                    max_area = lat * col&lt;br /&gt;
&lt;br /&gt;
    # perform BFS from cells on the border&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if a[i][0] == 1:&lt;br /&gt;
            p += 1&lt;br /&gt;
            bfs(i, 0)&lt;br /&gt;
        if a[i][m - 1] == 1:&lt;br /&gt;
            p += 1&lt;br /&gt;
            bfs(i, m - 1)&lt;br /&gt;
    for j in range(m):&lt;br /&gt;
        if a[0][j] == 1:&lt;br /&gt;
            p += 1&lt;br /&gt;
            bfs(0, j)&lt;br /&gt;
        if a[n - 1][j] == 1:&lt;br /&gt;
            p += 1&lt;br /&gt;
            bfs(n - 1, j)&lt;br /&gt;
&lt;br /&gt;
    return p, max_area&lt;br /&gt;
&lt;br /&gt;
if _name_ == &#039;_main_&#039;:&lt;br /&gt;
    n, m, matrice = citire_matrice()&lt;br /&gt;
    p, max_area = Mese(n, m, matrice)&lt;br /&gt;
    print(p, max_area)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod este o implementare a problemei &amp;quot;Mese&amp;quot; - se dă o matrice binară, iar scopul este de a determina numărul de bucătării (zone de 1-uri) și aria celei mai mari bucătării.&lt;br /&gt;
&lt;br /&gt;
 În funcția citire_matrice(), utilizatorul este întâmpinat cu mesaje pentru a introduce numărul de linii și coloane ale matricei, iar apoi matricea propriu-zisă este citită de la tastatură. Matricea este reprezentată ca o listă de liste, fiecare listă interioară reprezentând o linie a matricei.&lt;br /&gt;
&lt;br /&gt;
 Funcția Mese(n, m, matrice) primește numărul de linii și coloane ale matricei și matricea însăși. În interiorul acestei funcții sunt două funcții ajutătoare:&lt;br /&gt;
&lt;br /&gt;
 Funcția inside(i, j) verifică dacă o anumită celulă (i, j) este în interiorul matricei, astfel încât să nu se producă erori în timpul parcurgerii matricei.&lt;br /&gt;
 Funcția bfs(i, j) implementează o parcurgere BFS (breadth-first search) a matricei pornind de la poziția (i, j). &lt;br /&gt;
 Funcția explorează vecinii celulelor și marchează celulele care au fost deja explorate cu o valoare diferită de 1 sau 0 (în cazul de față, cu 2). Aria bucătăriei este calculată prin numărarea numărului de celule marcate.&lt;br /&gt;
 Funcția principală Mese(n, m, matrice) începe prin inițializarea a trei variabile: a este o copie a matricei inițiale, p reprezintă numărul de bucătării, iar max_area este aria maximă a unei bucătării.&lt;br /&gt;
&lt;br /&gt;
 În prima buclă for, se parcurge matricea și se verifică câte bucătării pot fi formate din linii și coloane consecutive de 1. Se calculează aria acestora, iar dacă aria este mai mare decât aria maximă găsită până în acel moment, aceasta este actualizată.&lt;br /&gt;
&lt;br /&gt;
 În a doua buclă for, se caută celulele de la marginea matricei care au valoarea 1 și se pornește o parcurgere BFS de la fiecare dintre acestea. Numărul de bucătării și aria maximă a unei bucătării sunt actualizate după fiecare parcurgere BFS.&lt;br /&gt;
&lt;br /&gt;
 În cele din urmă, funcția returnează numărul de bucătării și aria maximă a unei bucătării, care sunt apoi afișate în funcția principală _main_.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0568_-_Pod&amp;diff=3957</id>
		<title>0568 - Pod</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0568_-_Pod&amp;diff=3957"/>
		<updated>2023-04-22T07:12:02Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/568/pod] ---- == Cerinţa == Pentru traversarea unui râu se folosește un pod, alcătuit din &amp;#039;&amp;#039;&amp;#039;n*m&amp;#039;&amp;#039;&amp;#039; sectoare, dispuse pe &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. Datorită vechimii, fiecare sector al podului are un factor de siguranță cunoscut, exprimat printr-un număr natural, care scade cu o unitate de fiecare dată când o persoană pășește pe acel sector. Sectoarele cu factorul de siguranță nul nu sunt accesibile. Traversarea p...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/568/pod]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Pentru traversarea unui râu se folosește un pod, alcătuit din &#039;&#039;&#039;n*m&#039;&#039;&#039; sectoare, dispuse pe &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane. Datorită vechimii, fiecare sector al podului are un factor de siguranță cunoscut, exprimat printr-un număr natural, care scade cu o unitate de fiecare dată când o persoană pășește pe acel sector. Sectoarele cu factorul de siguranță nul nu sunt accesibile.&lt;br /&gt;
Traversarea podului constă în parcurgerea unei anumite coloane de la prima linie spre ultima. Nu este posibilă, din motive de siguranță, schimbarea coloanei în timpul traversării.&lt;br /&gt;
Administratorul podului, Gigel, vă cere să determinați numărul de persoane care vor putea traversa podul până la degradarea lui totală, pentru a argumenta cererea de finanțare pentru refacerea acestuia.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n m&#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, care descriu podul.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;.Programul va afișa pe ecran numărul C, reprezentând valoarea cerută. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n, m ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
* pentru fiecare sector, factorul de siguranță este cel mult &#039;&#039;&#039;10000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 4 5&lt;br /&gt;
: 5 3 6 2 1&lt;br /&gt;
: 4 4 0 4 3&lt;br /&gt;
: 6 2 2 3 4&lt;br /&gt;
: 3 4 4 5 1&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 8&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citire_matrice():&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        m = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= n &amp;lt;= 100 and 1 &amp;lt;= m &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(n):&lt;br /&gt;
        linie_matrice = []&lt;br /&gt;
        for coloana in range(m):&lt;br /&gt;
            try:&lt;br /&gt;
                valoare = int(input(f&amp;quot;Introduceti un numar pentru linia {linie+1}, coloana {coloana+1}: &amp;quot;))&lt;br /&gt;
                if valoare &amp;lt;= 10000:&lt;br /&gt;
                    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                    linie_matrice.append(valoare)&lt;br /&gt;
                else:&lt;br /&gt;
                    print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                    exit()&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
        matrice.append(linie_matrice)&lt;br /&gt;
&lt;br /&gt;
    return n, m, matrice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def Pod(n, m, matrice):&lt;br /&gt;
    s = 0&lt;br /&gt;
    for j in range(m):&lt;br /&gt;
        mini = 10001&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            if matrice[i][j] &amp;lt; mini and matrice[i][j] != 0:&lt;br /&gt;
                mini = matrice[i][j]&lt;br /&gt;
        s += mini&lt;br /&gt;
    print(s)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if _name_ == &#039;_main_&#039;:&lt;br /&gt;
    n, m, matrice = citire_matrice()&lt;br /&gt;
    Pod(n, m, matrice)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod este scris in limbajul Python si contine doua functii: citire_matrice() si Pod().&lt;br /&gt;
&lt;br /&gt;
 citire_matrice() primeste de la utilizator numarul de linii si coloane ale matricei si citeste valorile matricei de la tastatura. In cazul in care valorile introduse de utilizator nu sunt conforme cu cerintele problemei, functia va afisa un mesaj de eroare si va opri programul cu ajutorul functiei exit(). Daca toate valorile sunt valide, functia va returna numarul de linii, numarul de coloane si matricea citita.&lt;br /&gt;
 Pod() primeste numarul de linii, numarul de coloane si matricea. In interiorul functiei se initializeaza suma s cu 0 si se parcurge matricea coloana cu coloana. Pentru fiecare coloana se gaseste valoarea minima nenula si se adauga la suma s. La final, functia afiseaza suma calculata.&lt;br /&gt;
 In functia citire_matrice() se folosesc instructiuni try-except pentru a gestiona erorile la citirea datelor de la tastatura, iar in functia Pod() se utilizeaza doua instructiuni for pentru a parcurge matricea si a extrage valorile minime.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0662_-_Sum_El_Pare&amp;diff=3897</id>
		<title>0662 - Sum El Pare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0662_-_Sum_El_Pare&amp;diff=3897"/>
		<updated>2023-04-21T12:45:28Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/662/sumelpare] == Cerință == Se dă 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 și elemente numere naturale. Să se determine indicele liniei pentru care suma elementelor pare este maximă. == Date de intrare == Programul citește de la tastatură numerele &amp;#039;&amp;#039;&amp;#039;n m&amp;#039;&amp;#039;&amp;#039;, iar apoi &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; șiruri cu câte &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; numere naturale, reprezentând elementele matricei. == Date de ieșire ==  Dacă datele sunt introduse corect, pe ecran se v...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/662/sumelpare]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane și elemente numere naturale. Să se determine indicele liniei pentru care suma elementelor pare este maximă.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n m&#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 elementele matricei.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Programul va afișa pe ecran numărul &#039;&#039;&#039;I&#039;&#039;&#039;, reprezentând indicele determinat. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n , m ≤ 100&#039;&#039;&#039;&lt;br /&gt;
* elementele matricei sunt numere naturale mai mici decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
* liniile matricei sunt numerotate de &#039;&#039;&#039;1&#039;&#039;&#039; la &#039;&#039;&#039;n&#039;&#039;&#039;, iar coloanele de la &#039;&#039;&#039;1&#039;&#039;&#039; la &#039;&#039;&#039;m&#039;&#039;&#039;&lt;br /&gt;
* matricea conține cel puțin un element par&lt;br /&gt;
* dacă sunt mai multe linii cu suma elementelor pare maximă, se poate afișa indicele oricăreia&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
:  3 4&lt;br /&gt;
: 5 5 10 5 &lt;br /&gt;
: 3 9 1 2 &lt;br /&gt;
: 4 10 1 2 &lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: 3&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 1000000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def SumElPare(matrice, n, m):&lt;br /&gt;
    vmax = 0&lt;br /&gt;
    I = 0&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        s = 0&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            if matrice[i][j] % 2 == 0:&lt;br /&gt;
                s += matrice[i][j]&lt;br /&gt;
        if s &amp;gt; vmax:&lt;br /&gt;
            vmax = s&lt;br /&gt;
            I = i + 1&lt;br /&gt;
&lt;br /&gt;
    print(I)&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   SumElPare(matrice, n, m)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatii ==&lt;br /&gt;
 Acest cod este scris in limbajul de programare Python si implementeaza o functie numita SumElPare care primeste ca parametri o matrice de dimensiune n x m si afiseaza indicele liniei care contine suma maxima a elementelor pare din acea linie.&lt;br /&gt;
&lt;br /&gt;
 Pentru a realiza aceasta functie, codul contine mai multe functii ajutatoare. Functia citire_lin_col este folosita pentru a citi numarul de linii si de coloane ale matricei. Aceasta functie verifica daca numerele introduse respecta constrangerile impuse (1 &amp;lt;= lin &amp;lt;= 100 si 1 &amp;lt;= col &amp;lt;= 100) si afiseaza un mesaj corespunzator in caz contrar. Daca numerele introduse sunt corecte, functia returneaza valorile citite.&lt;br /&gt;
&lt;br /&gt;
 Functia citeste_valori_matrice este folosita pentru a citi valorile matricei. Aceasta functie creaza o lista vida pentru matrice si foloseste doua bucle for pentru a citi fiecare element al matricei. Pentru fiecare element citit, functia verifica daca valoarea introdusa este intre 0 si 1000000 si afiseaza un mesaj corespunzator in caz contrar. Daca valoarea este corecta, aceasta este adaugata in matrice.&lt;br /&gt;
&lt;br /&gt;
 Functia SumElPare este functia principala a codului. Aceasta primeste ca parametri matricea si dimensiunile sale n si m. Aceasta foloseste doua bucle for pentru a parcurge fiecare linie si coloana a matricei si calculeaza suma elementelor pare din fiecare linie. Daca suma elementelor pare dintr-o linie este mai mare decat vmax (initializat cu 0), functia actualizeaza vmax si I (indicele liniei cu suma maxima a elementelor pare).&lt;br /&gt;
&lt;br /&gt;
 In final, functia afiseaza indicele liniei cu suma maxima a elementelor pare din matrice.&lt;br /&gt;
&lt;br /&gt;
 Blocul if name == &amp;quot;main&amp;quot; este folosit pentru a verifica daca acest script este rulat ca un program independent sau este importat ca un modul in alt script. Daca acest script este rulat ca un program independent, acesta citeste dimensiunile matricei si valorile matricei de la utilizator si apeleaza functia SumElPare pentru a afisa indicele liniei cu suma maxima a elementelor pare.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2800_-_Chenar_1&amp;diff=3896</id>
		<title>2800 - Chenar 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2800_-_Chenar_1&amp;diff=3896"/>
		<updated>2023-04-21T12:40:08Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/2800/chenar1] == Cerință == Scrieți un program care citește de la tastatură două numere naturale din intervalul &amp;#039;&amp;#039;&amp;#039;[3,50]&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;, și elementele unui tablou bidimensional 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, numere naturale din intervalul &amp;#039;&amp;#039;&amp;#039;[0,104]&amp;#039;&amp;#039;&amp;#039;. Programul modifică în memorie tabloul dat, atribuind valoarea elementului aflat pe ultima linie și pe ultima coloană a tabloului fiecărui element aflat pe co...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2800/chenar1]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Scrieți un program care citește de la tastatură două numere naturale din intervalul &#039;&#039;&#039;[3,50]&#039;&#039;&#039;, &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;, și elementele unui tablou bidimensional cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane, numere naturale din intervalul &#039;&#039;&#039;[0,104]&#039;&#039;&#039;.&lt;br /&gt;
Programul modifică în memorie tabloul dat, atribuind valoarea elementului aflat pe ultima linie și pe ultima coloană a tabloului fiecărui element aflat pe conturul acestuia (pe prima linie, ultima linie, prima coloană, ultima coloană), apoi afișează pe ecran tabloul modificat, câte o linie a tabloului pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spațiu.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n m&#039;&#039;&#039;, iar apoi cele &#039;&#039;&#039;n • m&#039;&#039;&#039; elemente ale tabloului.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Programul va afișa pe ecran elementele tabloului modificat, conform cerinței. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;3 ≤ n,m ≤ 50&#039;&#039;&#039;&lt;br /&gt;
* lementele tabloului aparțin intervalului &#039;&#039;&#039;[0,104]&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
: 5 4&lt;br /&gt;
: 0 5 2 11&lt;br /&gt;
: 3 2 10 2&lt;br /&gt;
:  3 1 4&lt;br /&gt;
: 4 5 0 12&lt;br /&gt;
: 8 13 7 5&lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: 5 5 5 5 &lt;br /&gt;
: 5 2 10 5 &lt;br /&gt;
: 5 3 1 5 &lt;br /&gt;
: 5 5 0 5 &lt;br /&gt;
: 5 5 5 5 &lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 3 &amp;lt;= lin &amp;lt;= 50 and 3 &amp;lt;= col &amp;lt;= 50:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 10000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def Chenar1(matrice, n, m):&lt;br /&gt;
    val = matrice[-1][-1]&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        matrice[i][0] = val&lt;br /&gt;
        matrice[i][-1] = val&lt;br /&gt;
    for i in range(m):&lt;br /&gt;
        matrice[0][i] = val&lt;br /&gt;
        matrice[-1][i] = val&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            print(matrice[i][j], end=&#039; &#039;)&lt;br /&gt;
        print()&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   Chenar1(matrice, n, m)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatii ==&lt;br /&gt;
 Acest cod este o implementare în Python a problemei &amp;quot;Chenar 1&amp;quot; care solicită să se înlocuiască cu o valoare fixă elementele din marginile unei matrice, unde această valoare este preluată din celula din colțul din dreapta jos.&lt;br /&gt;
&lt;br /&gt;
 Programul este structurat în trei funcții:&lt;br /&gt;
&lt;br /&gt;
 citire_lin_col() - citește de la tastatură numărul de linii și coloane ale matricei și validează dacă respectă condițiile problemei; dacă da, returnează aceste valori ca tuple, altfel iese din program cu o eroare.&lt;br /&gt;
citeste_valori_matrice(lin, col) - citește de la tastatură valorile matricei, verificând în timpul citirii dacă sunt conforme cerinței problemei; matricea este stocată într-o listă de liste și returnată.&lt;br /&gt;
Chenar1(matrice, n, m) - primește ca parametri matricea și dimensiunile acesteia și înlocuiește elementele din margini cu valoarea preluată din celula din colțul din dreapta jos; apoi afișează matricea.&lt;br /&gt;
În funcția principală (if _name_ == &amp;quot;_main_&amp;quot;:) se apelează cele trei funcții în ordine pentru a obține și afișa matricea cu valorile din margini înlocuite.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0770_-_Perm_Col&amp;diff=3895</id>
		<title>0770 - Perm Col</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0770_-_Perm_Col&amp;diff=3895"/>
		<updated>2023-04-21T12:29:32Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/770/permcol] == Cerință == Se dă 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 și elemente numere naturale. Să se permute coloanele matricei circular spre stânga cu o poziție. == Date de intrare == Programul citește de la tastatură numerele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;, iar apoi &amp;#039;&amp;#039;&amp;#039;n*m&amp;#039;&amp;#039;&amp;#039; numere naturale, separate prin spații, reprezentând elementele matricei, linie cu linie. == Date de ieșire ==  Dacă datele sunt introduse corect,...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/770/permcol]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane și elemente numere naturale. Să se permute coloanele matricei circular spre stânga cu o poziție.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; şi &#039;&#039;&#039;m&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n*m&#039;&#039;&#039; numere naturale, separate prin spații, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Programul afișează pe ecran elementele matricei transformate, câte un linie a matricei pe o linie a ecranului, elementele de pe o linie fiind separate prin câte un spațiu. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ m, n ≤ 100&#039;&#039;&#039;&lt;br /&gt;
* elementele matricei vor fi mai mici decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
: 4 6&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 1 8 23 22 14 18 &lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: 20 15 23 18 9 4 &lt;br /&gt;
: 8 23 22 14 18 1 &lt;br /&gt;
: 15 13 18 12 15 17 &lt;br /&gt;
: 18 8 20 12 5 3&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 1000000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def PermCol(matrice, n, m):&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        aux = matrice[i][0]&lt;br /&gt;
        for j in range(m - 1):&lt;br /&gt;
            matrice[i][j] = matrice[i][j + 1]&lt;br /&gt;
        matrice[i][m - 1] = aux&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            print(matrice[i][j], end=&#039; &#039;)&lt;br /&gt;
        print()&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   PermCol(matrice, n, m)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatii ==&lt;br /&gt;
 Acest cod citeste de la tastatura dimensiunile si valorile unei matrice, apoi efectueaza o permutare a elementelor fiecarei coloane a matricei si afiseaza matricea rezultata.&lt;br /&gt;
&lt;br /&gt;
 Mai exact, functia citire_lin_col() citeste numarul de linii si coloane ale matricei de la tastatura, verificand ca valorile introduse sa se incadreze in intervalul [1,100], si returneaza aceste valori.&lt;br /&gt;
&lt;br /&gt;
 Functia citeste_valori_matrice(lin, col) creeaza o matrice de dimensiunea specificata, apoi citeste valori intregi pentru fiecare element din matrice, verificand ca acestea sa fie in intervalul [0,1000000], si adauga elementele la matricea creata anterior.&lt;br /&gt;
&lt;br /&gt;
 Functia PermCol(matrice, n, m) primeste ca parametri matricea citita anterior, precum si numarul de linii si coloane, si permuta fiecare coloana a matricei astfel incat primul element sa ajunga ultimul si toate celelalte elemente sa se deplaseze cu o pozitie spre stanga. Rezultatul permutarii este afisat apoi la consola.&lt;br /&gt;
&lt;br /&gt;
 In final, functiile sunt apelate in ordinea: citire_lin_col() pentru a citi dimensiunile matricei, citeste_valori_matrice(lin, col) pentru a citi valorile matricei, si PermCol(matrice, n, m) pentru a permuta si afisa matricea rezultata.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0766_-_Nr_Pare&amp;diff=3822</id>
		<title>0766 - Nr Pare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0766_-_Nr_Pare&amp;diff=3822"/>
		<updated>2023-04-19T12:59:50Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/766/nrpare]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;m&#039;&#039;&#039; coloane şi elemente numere naturale. Determinați indicele liniei care conține număr maxim de elemente pare. Dacă există mai multe linii cu număr maxim de elemente pare, se vor afișa toți indicii, în ordine crescătoare.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; şi &#039;&#039;&#039;m&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n*m&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;, Programul afișează pe ecran indicii liniilor cu număr maxim de elemente pare, în ordine crescătoare, separați prin câte un spaţiu. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 ≤ m,n ≤ 100&lt;br /&gt;
* elementele matricei vor fi mai mici decât &#039;&#039;&#039;10000&#039;&#039;&#039;&lt;br /&gt;
* liniile matricei au indici de la &#039;&#039;&#039;1&#039;&#039;&#039; la &#039;&#039;&#039;n&#039;&#039;&#039;.&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
: 4 6&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 1 8 23 22 14 18 &lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: 2 4&lt;br /&gt;
==== explicatie ====&lt;br /&gt;
Liniile &#039;&#039;&#039;2&#039;&#039;&#039; și &#039;&#039;&#039;4&#039;&#039;&#039; din matrice conțin număr maxim de elemente pare, &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        m = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= n &amp;lt;= 100 and 1 &amp;lt;= m &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return n, m&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            for i in range(3):&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(f&amp;quot;Introduceti un numar pentru linia {linie+1}, coloana {coloana+1}: &amp;quot;))&lt;br /&gt;
                    if n &amp;lt;= 10000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Prea multe incercari esuate.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def elemente_pare_numar_max(matrice, n, m):&lt;br /&gt;
    max_contor = 0&lt;br /&gt;
    max_linii = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        contor = sum(1 for x in matrice[i] if x % 2 == 0)&lt;br /&gt;
        if contor &amp;gt; max_contor:&lt;br /&gt;
            max_contor = contor&lt;br /&gt;
            max_linii = [i+1]&lt;br /&gt;
        elif contor == max_contor:&lt;br /&gt;
            max_linii.append(i+1)&lt;br /&gt;
&lt;br /&gt;
    if max_contor == 0:&lt;br /&gt;
        print(&amp;quot;NU EXISTA&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(*max_linii)&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m = citire_lin_col()&lt;br /&gt;
    matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
    elemente_pare_numar_max(matrice, n, m)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatii ==&lt;br /&gt;
 Funcția citire_lin_col() citește de la tastatură numărul de linii n și de coloane m ale matricei. Se verifică dacă valorile citite se încadrează în intervalul [1, 100]. Dacă valorile sunt corecte, funcția returnează valorile citite.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori_matrice(lin, col) citește de la tastatură valorile matricei. Se verifică dacă fiecare valoare este un număr întreg și se încadrează în intervalul [1, 10000]. Dacă o valoare introdusă nu respectă restricțiile, utilizatorul este avertizat și i se cere să introducă o nouă valoare. Dacă utilizatorul nu poate introduce o valoare corectă după trei încercări, programul se va opri. Funcția returnează matricea completată.&lt;br /&gt;
&lt;br /&gt;
 Funcția elemente_pare_numar_max(matrice, n, m) determină indicele liniei care conține cele mai multe elemente pare în matrice. Se verifică dacă matricea are cel puțin un element par. Dacă matricea nu are elemente pare, se va afișa mesajul &amp;quot;NU EXISTA&amp;quot;. Altfel, se va afișa indicele/indicii liniilor care conțin cele mai multe elemente pare, în ordine crescătoare.&lt;br /&gt;
&lt;br /&gt;
 Funcția main() este punctul de intrare în program. Se citesc dimensiunile matricei și valorile acesteia utilizând funcțiile citire_lin_col() și citeste_valori_matrice(). Apoi, se determină indicele/indicii liniilor care conțin cele mai multe elemente pare în matrice utilizând funcția elemente_pare_numar_max().&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0768_-_Suma_Pare_3&amp;diff=3821</id>
		<title>0768 - Suma Pare 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0768_-_Suma_Pare_3&amp;diff=3821"/>
		<updated>2023-04-19T12:47:44Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/768/sumapare3]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;m&#039;&#039;&#039; coloane şi elemente numere naturale. Determinați suma valorilor pare distincte din matrice. Dacă o valoare pară apare în matrice de mai multe ori, se va aduna o singură dată.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; şi &#039;&#039;&#039;m&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n*m&#039;&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;, Programul afișează pe ecran suma căutată S. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n ≤ 100&#039;&#039;&#039;&lt;br /&gt;
* elementele matricei vor fi mai mici sau egale cu &#039;&#039;&#039;10000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
:4 6&lt;br /&gt;
:4 20 15 23 18 9 &lt;br /&gt;
:1 8 23 22 14 18 &lt;br /&gt;
:17 15 13 18 12 15 &lt;br /&gt;
:3 18 8 20 12 5 &lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: 98&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
: a v&lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: Datele nu sunt comform restrictiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        m = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= n &amp;lt;= 100 and 1 &amp;lt;= m &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return n, m&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            for i in range(3):&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(f&amp;quot;Introduceti un numar pentru linia {linie+1}, coloana {coloana+1}: &amp;quot;))&lt;br /&gt;
                    if n &amp;lt;= 10000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Prea multe incercari esuate.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def elemente_pare(matrice, n, m):&lt;br /&gt;
    numere_pare= set()&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            if matrice[i][j] % 2 == 0:&lt;br /&gt;
                numere_pare.add(matrice[i][j])&lt;br /&gt;
&lt;br /&gt;
    print(sum(numere_pare))&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m = citire_lin_col()&lt;br /&gt;
    matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
    s=elemente_pare(matrice, n, m)&lt;br /&gt;
    print(s)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatii ==&lt;br /&gt;
 Acest cod definește trei funcții:&lt;br /&gt;
&lt;br /&gt;
 citire_lin_col(): Această funcție primește de la utilizator numărul de linii și de coloane pentru o matrice și verifică dacă acestea se încadrează în limitele impuse. Dacă valorile introduse sunt valide, funcția returnează aceste valori.&lt;br /&gt;
&lt;br /&gt;
 citeste_valori_matrice(lin, col): Această funcție primește numărul de linii și de coloane pentru o matrice și primește de la utilizator valorile matricei. Pentru fiecare element al matricei, utilizatorul este rugat să introducă un număr. Se vor face trei încercări de a introduce un număr valid. Dacă utilizatorul introduce un număr valid, valoarea este adăugată la matrice și se trece la următorul element. Dacă după trei încercări utilizatorul nu a introdus un număr valid, programul se oprește.&lt;br /&gt;
&lt;br /&gt;
 elemente_pare(matrice, n, m): Această funcție primește o matrice și numărul de linii și de coloane ale acesteia. Funcția calculează suma tuturor numerelor pare din matrice și o returnează.&lt;br /&gt;
&lt;br /&gt;
 În main(), se folosesc aceste funcții pentru a citi matricea și a calcula suma numerelor pare din matrice, care este apoi afișată.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0804_-_Col_Egale&amp;diff=3820</id>
		<title>0804 - Col Egale</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0804_-_Col_Egale&amp;diff=3820"/>
		<updated>2023-04-19T12:39:44Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/804/colegale]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;m&#039;&#039;&#039; linii şi &#039;&#039;&#039;n&#039;&#039;&#039; coloane şi elemente numere naturale cu cel mult 4 cifre fiecare. Să se determine coloanele matricei care au toate elementele egale cu aceeași valoare.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;m&#039;&#039;&#039; şi &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;m*n&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;, Programul afișează pe ecran pentru fiecare coloană cu toate elementele egale, valoarea comună. Valorile afișate vor fi separate prin câte un spațiu, iar dacă nu există coloane cu toate elementele egale, se va afișa nu exista. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 2 ≤ m,n ≤ 50&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
:4 5&lt;br /&gt;
:2 3 7 5 7&lt;br /&gt;
:3 3 7 4 7&lt;br /&gt;
:7 3 7 1 7&lt;br /&gt;
:8 3 7 6 7&lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: 3 7 7&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
: 4 1 &lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: Datele nu sunt comform restrictiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        m = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 2 &amp;lt;= n &amp;lt;= 50 and 2 &amp;lt;= m &amp;lt;= 50:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return n, m&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            for i in range(3):&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(f&amp;quot;Introduceti un numar pentru linia {linie+1}, coloana {coloana+1}: &amp;quot;))&lt;br /&gt;
                    if n &amp;gt;= 0:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Prea multe incercari esuate.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def elemente_egale(matrice, n, m):&lt;br /&gt;
    found = False&lt;br /&gt;
    for j in range(m):&lt;br /&gt;
        col = [matrice[i][j] for i in range(n)]&lt;br /&gt;
        if len(set(col)) == 1:&lt;br /&gt;
            print(f&amp;quot;Elementul {col[0]} se afla in coloana {j+1}.&amp;quot;)&lt;br /&gt;
            found = True&lt;br /&gt;
&lt;br /&gt;
    if not found:&lt;br /&gt;
        print(&amp;quot;Nu exista coloane cu elemente egale.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m = citire_lin_col()&lt;br /&gt;
    matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
    elemente_egale(matrice, n, m)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatii ==&lt;br /&gt;
 Acest cod reprezintă o soluție Python pentru găsirea coloanelor dintr-o matrice care conțin elemente egale.&lt;br /&gt;
&lt;br /&gt;
 Funcția citire_lin_col() citește de la tastatură numărul de linii și coloane pentru matricea dată. Se verifică ca numerele introduse să fie întregi și să se încadreze în limitele 2-50, altfel se afișează un mesaj de eroare și programul se închide. Funcția returnează numărul de linii și coloane citite.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori_matrice(lin, col) citește valorile matricei de la tastatură, linie cu linie și coloană cu coloană. Pentru fiecare element se verifică dacă a fost introdus un număr întreg pozitiv și se afișează un mesaj corespunzător. Dacă se încearcă introducerea unui număr invalid de trei ori consecutiv, programul se închide. Funcția returnează matricea.&lt;br /&gt;
&lt;br /&gt;
 Funcția elemente_egale(matrice, n, m) caută coloanele care conțin cel puțin două elemente egale. Dacă se găsește o astfel de coloană, se afișează valoarea comună și numărul coloanei corespunzător. În caz contrar, se afișează un mesaj care indică faptul că nu s-au găsit coloane cu elemente egale.&lt;br /&gt;
&lt;br /&gt;
 În cadrul blocului if _name_ == &amp;quot;_main_&amp;quot;: se apelează funcțiile pentru citirea datelor de intrare și găsirea coloanelor cu elemente egale.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0789_-_Max_2_Ap&amp;diff=3819</id>
		<title>0789 - Max 2 Ap</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0789_-_Max_2_Ap&amp;diff=3819"/>
		<updated>2023-04-19T12:31:22Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/789/max2ap]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;m&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine cea mai mare valoare care apare în matrice de cel puțin două ori.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; şi &#039;&#039;&#039;m&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n*m&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;, Programul afișează pe ecran cea mai mare valoare care apare în matrice de cel puțin două ori. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 ≤ &#039;&#039;&#039;m,n&#039;&#039;&#039; ≤ 1000&lt;br /&gt;
* elementele matricei vor fi mai mici decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
* dacă în matrice nu se repeta nici o valoare se va afișa &#039;&#039;&#039;IMPOSIBIL&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
:4 6&lt;br /&gt;
:4 70 15 23 38 9 &lt;br /&gt;
:1 8 23 23 14 18 &lt;br /&gt;
:17 15 13 38 12 15 &lt;br /&gt;
:3 18 8 23 12 5 &lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: 38&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
: 3 4&lt;br /&gt;
: 1 2 3 4&lt;br /&gt;
: 5 6 7 8&lt;br /&gt;
: 9 10 11 12&lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: IMOSIBIL&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        m = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= n &amp;lt;= 100 and 1 &amp;lt;= m &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return n,m&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if n &amp;lt;= 1000000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def elemente_maxime_duble(matrice):&lt;br /&gt;
    seen = set()&lt;br /&gt;
    max_duplicat = None&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            valoare = matrice[i][j]&lt;br /&gt;
            if valoare in seen and (max_duplicat is None or valoare &amp;gt; max_duplicat):&lt;br /&gt;
                max_duplicat = valoare&lt;br /&gt;
            else:&lt;br /&gt;
                seen.add(valoare)&lt;br /&gt;
&lt;br /&gt;
    if max_duplicat is None:&lt;br /&gt;
        print(&amp;quot;IMPOSIBIL&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(max_duplicat)&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m = citire_lin_col()&lt;br /&gt;
    matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
    elemente_maxime_duble(matrice)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatii ==&lt;br /&gt;
 citire_lin_col(): aceasta functie solicita utilizatorului sa introduca numarul de linii si numarul de coloane ale matricei. Daca valorile introduse sunt corecte (intre 1 si 100), functia va returna n si m. Altfel, se va afisa un mesaj de eroare si programul va iesi din executie. Aceasta functie este utilizata pentru a citi dimensiunile matricei.&lt;br /&gt;
&lt;br /&gt;
 citeste_valori_matrice(lin, col): aceasta functie solicita utilizatorului sa introduca valorile matricei pentru fiecare element in parte. Utilizatorul este intrebat sa introduca un numar, iar daca valoarea este corecta (mai mica sau egala cu 1.000.000), numarul este adaugat la matrice. Daca valoarea este incorecta, se va afisa un mesaj de eroare si se va cere introducerea unui alt numar. Aceasta functie este utilizata pentru a citi valorile din matrice.&lt;br /&gt;
&lt;br /&gt;
 elemente_maxime_duble(matrice): aceasta functie cauta valoarea maxima care apare cel putin de doua ori in matrice. Pentru a face acest lucru, se foloseste un set pentru a tine evidenta valorilor deja intalnite. In timpul iterarii prin matrice, se verifica daca valoarea curenta este deja prezenta in set. Daca da, aceasta este comparata cu valoarea maxima duplicata gasita pana in acel moment si se actualizeaza valoarea maxima daca este cazul. Daca nu, valoarea este adaugata la set. Daca nu exista valori duplicate, se va afisa &amp;quot;IMPOSIBIL&amp;quot;. Altfel, se va afisa valoarea maxima duplicata gasita.&lt;br /&gt;
&lt;br /&gt;
 In functia main(), se citesc dimensiunile matricei, se citesc valorile matricei si se cauta valoarea maxima duplicata. Rezultatul functiei elemente_maxime_duble(matrice) este afisat direct in functie, astfel ca nu este necesar sa stocam valoarea intoarsa de aceasta functie intr-o variabila.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0779_-_Vecini_Pari&amp;diff=3818</id>
		<title>0779 - Vecini Pari</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0779_-_Vecini_Pari&amp;diff=3818"/>
		<updated>2023-04-19T12:16:46Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/779/vecinipari]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;m&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine câte elemente din matrice au toți vecinii numere pare.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; şi &#039;&#039;&#039;m&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n*m&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot; Programul afișează pe ecran numărul &#039;&#039;&#039;C&#039;&#039;&#039;, reprezentând valoarea determinată. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 ≤ &#039;&#039;&#039;m,n&#039;&#039;&#039; ≤ 100&lt;br /&gt;
* elementele matricei vor fi mai mici decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
* un element al matricei are cel mult patru vecini: pe linia anterioară și aceeași coloană, pe linia următoare și aceeași coloană, pe aceeași linie și coloana anterioară, pe aceeași linie și coloana următoare.&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
:4 7&lt;br /&gt;
:15 27 40 41 32 42 12 &lt;br /&gt;
:48 35 40 54 17 46 32 &lt;br /&gt;
:37 52 40 18 11 46 23 &lt;br /&gt;
:49 27 40 29 25 44 12 &lt;br /&gt;
; Date de ieșire&lt;br /&gt;
:5&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
: 2 2&lt;br /&gt;
: 1 3&lt;br /&gt;
: 4 5&lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        m = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= n &amp;lt;= 100 and 1 &amp;lt;= m &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return n,m&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if n &amp;lt;= 1000000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def vecini(matrice):&lt;br /&gt;
    contor = 0&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 - 1][j] % 2 == 1:  # verificăm vecinul de sus&lt;br /&gt;
                continue&lt;br /&gt;
            if i &amp;lt; n - 1 and matrice[i + 1][j] % 2 == 1:  # verificăm vecinul de jos&lt;br /&gt;
                continue&lt;br /&gt;
            if j &amp;gt; 0 and matrice[i][j - 1] % 2 == 1:  # verificăm vecinul din stânga&lt;br /&gt;
                continue&lt;br /&gt;
            if j &amp;lt; m - 1 and matrice[i][j + 1] % 2 == 1:  # verificăm vecinul din dreapta&lt;br /&gt;
                continue&lt;br /&gt;
            contor += 1&lt;br /&gt;
&lt;br /&gt;
    print( contor)&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
    n, m = citire_lin_col()&lt;br /&gt;
    matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
    vecini_elemente = vecini(matrice)&lt;br /&gt;
    print(vecini_elemente)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatii ==&lt;br /&gt;
 Acest cod definește trei funcții și apoi le utilizează într-o structură if _name_ == &amp;quot;_main_&amp;quot;: pentru a obține numărul de elemente din matrice care sunt &amp;quot;izolate&amp;quot;, adică nu au vecini cu numere impare.&lt;br /&gt;
&lt;br /&gt;
 Funcția citire_lin_col() citește de la tastatură numărul de linii și coloane ale matricei, verifică dacă acestea se află în intervalul [1, 100], și returnează aceste valori dacă sunt valide.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori_matrice(lin, col) citește valorile matricei de la tastatură, verificând dacă fiecare valoare se află în intervalul [1, 1000000], și le adaugă la matricea returnată.&lt;br /&gt;
&lt;br /&gt;
 Funcția vecini(matrice) numără numărul de elemente din matrice care nu au vecini cu numere impare. Pentru fiecare element din matrice, funcția verifică dacă vecinul de sus, cel de jos, cel din stânga sau cel din dreapta este un număr impar, iar dacă da, trece la următorul element. Dacă niciun vecin al elementului curent nu este impar, contorul de elemente izolate este incrementat. La final, funcția afișează numărul de astfel de elemente.&lt;br /&gt;
&lt;br /&gt;
 În if _name_ == &amp;quot;_main_&amp;quot;:, se citește numărul de linii și coloane ale matricei, se citește matricea de la tastatură, se calculează numărul de elemente izolate și se afișează.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0778_-_MChenar&amp;diff=3817</id>
		<title>0778 - MChenar</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0778_-_MChenar&amp;diff=3817"/>
		<updated>2023-04-19T12:07:09Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/778/mchenar]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;m&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine mulțimea formată din elementele distincte ale chenarului matricei.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; şi &#039;&#039;&#039;m&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n*m&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;, Programul afișează pe ecran elementele mulțimii determinate, în ordine strict crescătoare, separate printr-un spațiu. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 ≤ &#039;&#039;&#039;m,n&#039;&#039;&#039; ≤ 100&lt;br /&gt;
* elementele matricei vor fi mai mici decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
* chenarul matricei este format din elementele situate pe prima linie, prima coloană, ultima linie, ultima coloană&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
:4 7&lt;br /&gt;
:15 27 40 41 32 42 12 &lt;br /&gt;
:48 35 40 54 17 46 33 &lt;br /&gt;
:37 52 40 19 11 46 23 &lt;br /&gt;
:49 27 40 29 25 44 12 &lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: 12 15 23 25 27 29 32 33 37 40 41 42 44 48 49&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
: 2 3&lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: Datele nu sunt conform restrictiilor impuse.&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 3 &amp;lt;= lin &amp;lt;= 100 and 3 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 3 &amp;lt;= n &amp;lt;= 100:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def elemente(matrice):&lt;br /&gt;
    elemente_margini = set()&lt;br /&gt;
    for element in matrice[0]:&lt;br /&gt;
        elemente_margini.add(element)&lt;br /&gt;
    for element in matrice[-1]:&lt;br /&gt;
        elemente_margini.add(element)&lt;br /&gt;
    for i in range(1, len(matrice) - 1):&lt;br /&gt;
        elemente_margini.add(matrice[i][0])&lt;br /&gt;
        elemente_margini.add(matrice[i][-1])&lt;br /&gt;
    return sorted(elemente_margini)&lt;br /&gt;
&lt;br /&gt;
if name == &amp;quot;main&amp;quot;:&lt;br /&gt;
    n, m = citire_lin_col()&lt;br /&gt;
    matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
    bordura_elemente = elemente(matrice)&lt;br /&gt;
    print(bordura_elemente)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatii ==&lt;br /&gt;
 citire_lin_col(): Această funcție cere utilizatorului să introducă numărul de linii și coloane ale matricei și verifică dacă numerele sunt corecte. Dacă numerele sunt în intervalul [3, 100], funcția va returna aceste valori. În caz contrar, programul va fi oprit prin apelarea funcției exit().&lt;br /&gt;
&lt;br /&gt;
 citeste_valori_matrice(lin, col): Această funcție primește ca parametri numărul de linii și coloane și întoarce o matrice cu aceste dimensiuni. Utilizatorul este invitat să introducă un număr pentru fiecare celulă din matrice, iar funcția verifică dacă numărul este în intervalul [3, 100]. În caz contrar, utilizatorul va fi invitat să reintroducă numărul până când acesta este valid.&lt;br /&gt;
&lt;br /&gt;
 citeste_numar_x(): Această funcție solicită utilizatorului să introducă un număr și verifică dacă acesta se încadrează în intervalul [3, 100]. În caz contrar, utilizatorul va fi invitat să reintroducă numărul până când acesta este valid.&lt;br /&gt;
&lt;br /&gt;
 elemente(matrice): Această funcție primește o matrice și determină elementele marginale (primele și ultimele elemente ale primei și ultimei linii și primele și ultimele elemente ale primei și ultimei coloane) ale matricei și le întoarce sub formă de set. De asemenea, setul este sortat în ordine crescătoare înainte de a fi întors.&lt;br /&gt;
&lt;br /&gt;
 În if _name_ == &amp;quot;_main_&amp;quot;: se folosește cele trei funcții precedente pentru a citi matricea, a determina elementele marginale și a afișa aceste elemente în ordine crescătoare.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2825_-_Chenar_2&amp;diff=3816</id>
		<title>2825 - Chenar 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2825_-_Chenar_2&amp;diff=3816"/>
		<updated>2023-04-19T11:55:22Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2825/chenar2]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Scrieți un program C/C++ care citește de la tastatură numere naturale din intervalul &#039;&#039;&#039;[3, 100]&#039;&#039;&#039;, în această ordine: &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;, apoi elementele unui tablou bidimensional cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane, iar la final un număr &#039;&#039;&#039;x&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Programul afișează pe ecran mesajul &#039;&#039;&#039;DA&#039;&#039;&#039;, dacă există cel puțin un element egal cu &#039;&#039;&#039;x&#039;&#039;&#039; aflat pe conturul tabloului (format din prima linie, ultima linie, prima coloană și ultima coloană), sau mesajul &#039;&#039;&#039;NU&#039;&#039;&#039; în caz contrar.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură de la tastatură numere naturale &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;, apoi elementele unui tablou bidimensional cu &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane, iar la final un număr &#039;&#039;&#039;x&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;, Programul va afișa pe ecran mesajul DA sau mesajul NU, conform cerinței. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*toate valorile citite sunt numere naturale din intervalul &#039;&#039;&#039;[3, 100]&#039;&#039;&#039;.&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
:4 5&lt;br /&gt;
:12 5 12 11 4&lt;br /&gt;
:3 20 10 20 12&lt;br /&gt;
:4 5 30 12 6&lt;br /&gt;
:8 13 7 12 14&lt;br /&gt;
:12&lt;br /&gt;
; Date de ieșire&lt;br /&gt;
:DA&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
: 3 2&lt;br /&gt;
; Date de ieșire&lt;br /&gt;
: NU, Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 3 &amp;lt;= lin &amp;lt;= 100 and 3 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 3 &amp;lt;= n &amp;lt;= 100:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def citeste_numar_x():&lt;br /&gt;
    while True:&lt;br /&gt;
        try:&lt;br /&gt;
            x = int(input(&amp;quot;Introduceti numarul : &amp;quot;))&lt;br /&gt;
            if 3 &amp;lt;= x &amp;lt;= 100:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                return x&lt;br /&gt;
            else :&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        except ValueError:&lt;br /&gt;
            print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def element(matrice, n, m, x):&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            if i == 0 or i == n - 1 or j == 0 or j == m - 1:&lt;br /&gt;
                if matrice[i][j] == x:&lt;br /&gt;
                    print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
                    return&lt;br /&gt;
    print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   x = citeste_numar_x()&lt;br /&gt;
   element(matrice, n, m, x)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatii ==&lt;br /&gt;
 Acest cod implementează o funcție pentru a căuta un anumit element x în matricea dată. Funcția primește matricea, numărul de linii și coloane ale acesteia și numărul căutat.&lt;br /&gt;
&lt;br /&gt;
 În primul rând, funcția citire_lin_col solicită introducerea numărului de linii și coloane, verifică dacă acestea sunt în intervalul [3,100], afișează un mesaj corespunzător și returnează valorile introduse.&lt;br /&gt;
&lt;br /&gt;
 Apoi, funcția citeste_valori_matrice primește numărul de linii și coloane și construiește matricea prin adăugarea de elemente la fiecare iterație a buclei. Se verifică dacă fiecare element este în intervalul [3,100], iar dacă acesta nu este valid, se va afișa un mesaj corespunzător.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_numar_x solicită introducerea numărului căutat, verifică dacă acesta este în intervalul [3,100], afișează un mesaj corespunzător și returnează valoarea introdusă.&lt;br /&gt;
&lt;br /&gt;
 În cele din urmă, funcția element primește matricea, numărul de linii și coloane ale acesteia și numărul căutat. Se parcurge matricea și se caută elementul x pe marginea matricei (primele și ultimele linii și coloane). Dacă x este găsit pe una dintre margini, se afișează &amp;quot;DA&amp;quot; și se returnează. Dacă nu este găsit pe nicio margine, se afișează &amp;quot;NU&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 În if _name_ == &amp;quot;_main_&amp;quot;:, se apelează funcțiile pentru a efectua căutarea elementului x în matricea dată.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0777_-_Cnt_Coloane&amp;diff=3815</id>
		<title>0777 - Cnt Coloane</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0777_-_Cnt_Coloane&amp;diff=3815"/>
		<updated>2023-04-19T11:47:02Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/777/cntcoloane]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;m&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine câte coloane ale matricei au elementele distincte două câte două.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; şi &#039;&#039;&#039;m&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n*m&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;, Programul afișează pe ecran numărul &#039;&#039;&#039;C&#039;&#039;&#039;, cu semnificația de mai sus. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 ≤ &#039;&#039;&#039;m,n&#039;&#039;&#039; ≤ 1000&lt;br /&gt;
* elementele matricei vor fi mai mici decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
:4 7&lt;br /&gt;
:15 27 40 41 32 42 12 &lt;br /&gt;
:48 35 40 54 17 46 33 &lt;br /&gt;
:37 52 40 19 11 46 23 &lt;br /&gt;
:49 27 40 29 25 44 12 &lt;br /&gt;
;Date de ieșire&lt;br /&gt;
: 3&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Date de intrare&lt;br /&gt;
: 0&lt;br /&gt;
;Date de ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 1000000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def elemente_distincte(matrice):&lt;br /&gt;
    contor = 0&lt;br /&gt;
    n = len(matrice)&lt;br /&gt;
    for col in range(len(matrice[0])):&lt;br /&gt;
        # folosim set pentru a elimina elementele duplicate din coloana&lt;br /&gt;
        if len(set(matrice[lin][col] for lin in range(n))) == n:&lt;br /&gt;
            contor += 1&lt;br /&gt;
    return contor&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   nr_col_distincte = elemente_distincte(matrice)&lt;br /&gt;
   print(f&amp;quot;Numarul de coloane cu toate elementele distincte doua cate doua este {nr_col_distincte}&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatii ==&lt;br /&gt;
 Funcția citire_lin_col() este utilizată pentru a citi numărul de linii și de coloane ale matricei, verificând dacă acestea sunt între 1 și 100. Dacă input-ul este invalid, se va afișa un mesaj corespunzător și se va opri programul cu ajutorul funcției exit().&lt;br /&gt;
 Funcția citeste_valori_matrice(lin, col) este utilizată pentru a citi valorile matricei de la tastatură, verificând dacă acestea sunt mai mici decât 1.000.000. Dacă input-ul este invalid, se va afișa un mesaj corespunzător, dar citirea valorii respective va continua până când se va introduce un input valid. Funcția returnează matricea citită.&lt;br /&gt;
 Funcția elemente_distincte(matrice) primește matricea și determină numărul de coloane ale matricei care au toate elementele distincte două câte două. Pentru fiecare coloană, se creează o listă cu elementele respective, iar apoi se verifică dacă toate elementele din lista respectivă sunt distincte. Dacă da, se va incrementa un contor. La final, funcția returnează valoarea acestui contor.&lt;br /&gt;
 În blocul if _name_ == &amp;quot;_main_&amp;quot;: se apelează funcțiile pentru a citi matricea și pentru a calcula numărul de coloane cu toate elementele distincte. Acest număr este afișat pe ecran cu ajutorul funcției print().&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0776_-_Cnt_Linii&amp;diff=3814</id>
		<title>0776 - Cnt Linii</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0776_-_Cnt_Linii&amp;diff=3814"/>
		<updated>2023-04-19T11:39:41Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/776/cntlinii]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;m&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine câte linii ale matricei au toate elementele egale.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; şi &#039;&#039;&#039;m&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n*m&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;, Programul afișează pe ecran numărul &#039;&#039;&#039;C&#039;&#039;&#039;, cu semnificația de mai sus. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 ≤ &#039;&#039;&#039;m,n&#039;&#039;&#039; ≤ 100&lt;br /&gt;
*elementele matricei vor fi mai mici decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
;Date de intrare&lt;br /&gt;
:4 6&lt;br /&gt;
:23 23 15 23 18 23&lt;br /&gt;
:17 17 17 17 17 17&lt;br /&gt;
:17 18 13 18 12 15 &lt;br /&gt;
:34 34 34 34 34 34 &lt;br /&gt;
;Date de ieșire&lt;br /&gt;
: 2&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
;Date de intrare&lt;br /&gt;
:0&lt;br /&gt;
;Date de ieșire&lt;br /&gt;
Datele nu sunt comform restricțiilor impuse.&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 1000000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def lini_egale(matrice):&lt;br /&gt;
    contor = 0&lt;br /&gt;
    for lin in matrice:&lt;br /&gt;
        # verificam daca toate elementele din linie sunt egale cu primul element&lt;br /&gt;
        if all(element == lin[0] for element in lin):&lt;br /&gt;
            contor += 1&lt;br /&gt;
    return contor&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   nr_lini_ega = lini_egale(matrice)&lt;br /&gt;
   print(f&amp;quot;Numarul de linii cu toate elementele egale este {nr_lini_ega}&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicati ==&lt;br /&gt;
 Acest cod este scris în limbajul de programare Python și conține trei funcții:&lt;br /&gt;
 Funcția citire_lin_col() primește de la utilizator numărul de linii și coloane ale unei matrice și le validează pentru a se asigura că respectă restricțiile impuse (valorile trebuie să fie între 1 și 100 inclusiv). Dacă datele sunt corecte, funcția returnează numărul de linii și de coloane introduse de utilizator. Dacă valorile introduse nu sunt valide sau utilizatorul introduce caractere diferite de numere întregi, programul se oprește cu ajutorul funcției exit().&lt;br /&gt;
 Funcția citeste_valori_matrice(lin, col) primește numărul de linii și coloane ale matricei și le folosește pentru a citi valorile fiecărei celule a matricei de la utilizator. Funcția validează datele introduse pentru a se asigura că sunt numere întregi și că respectă restricțiile impuse (valorile trebuie să fie între 0 și 1.000.000 inclusiv). Dacă valorile introduse nu sunt valide, programul va solicita introducerea de noi valori până când se vor introduce date valide. Funcția returnează matricea formată din valorile introduse.&lt;br /&gt;
 Funcția lini_egale(matrice) primește o matrice și numără câte linii din matrice au toate elementele egale cu primul element al liniei respective. Funcția returnează numărul de linii cu această caracteristică.&lt;br /&gt;
 În funcția main, programul apelează cele trei funcții și afișează numărul de linii din matrice cu toate elementele egale cu primul element al liniei respective.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0772_-_Max_Ap&amp;diff=3813</id>
		<title>0772 - Max Ap</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0772_-_Max_Ap&amp;diff=3813"/>
		<updated>2023-04-19T11:29:27Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/772/maxap]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dă o matrice cu &#039;&#039;&#039;n&#039;&#039;&#039; linii şi &#039;&#039;&#039;m&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine elementul cu număr maxim de apariții în matrice. Dacă există mai multe elemente cu număr maxim de apariții se vor afișa toate, în ordine crescătoare.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; şi &#039;&#039;&#039;m&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n*m&#039;&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;, Programul afișează pe ecran elementele cu număr maxim de apariții se vor afișa toate, în ordine crescătoare, separate printr-un spațiu.&lt;br /&gt;
În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 ≤ &#039;&#039;&#039;m,n&#039;&#039;&#039; ≤ 100&lt;br /&gt;
* elementele matricei vor fi mai mici decât &#039;&#039;&#039;1.000.000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
;Date de intrare&lt;br /&gt;
:4 6&lt;br /&gt;
:4 20 15 23 18 9 &lt;br /&gt;
:1 8 23 23 14 18 &lt;br /&gt;
:17 15 13 18 12 15 &lt;br /&gt;
:3 18 8 23 12 5 &lt;br /&gt;
;Date de ieșire&lt;br /&gt;
:18 23&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
;Date de intrare&lt;br /&gt;
:a b&lt;br /&gt;
;Date de ieșire&lt;br /&gt;
:Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 1000000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def maxim_apariti(matrice):&lt;br /&gt;
    contor = {}  # initializam un dictionar pentru a numara aparitiile elementelor&lt;br /&gt;
    max_contor = 0  # initializam numarul maxim de aparitii la 0&lt;br /&gt;
&lt;br /&gt;
    for linie in matrice:&lt;br /&gt;
        for elem in linie:&lt;br /&gt;
            if elem in contor:&lt;br /&gt;
                contor[elem] += 1  # incrementam numarul de aparitii pentru un element existent&lt;br /&gt;
            else:&lt;br /&gt;
                contor[elem] = 1  # adaugam un element nou in dictionar cu numarul de aparitii initializat la 1&lt;br /&gt;
            if contor[elem] &amp;gt; max_contor:&lt;br /&gt;
                max_contor = contor[elem]  # actualizam numarul maxim de aparitii&lt;br /&gt;
&lt;br /&gt;
    max_elems = sorted([elem for elem, contor in contor.items() if contor == max_contor])&lt;br /&gt;
    return max_elems&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   matrice_ordonata = maxim_apariti(matrice)&lt;br /&gt;
   print(&amp;quot;Elementele cu număr maxim de apariții sunt:&amp;quot;, matrice_ordonata)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod este o implementare Python a unei funcționalități care primește de la utilizator o matrice cu dimensiuni specifice și apoi identifică elementele care apar de cele mai multe ori în matrice. Mai precis, programul are trei funcții distincte:&lt;br /&gt;
&lt;br /&gt;
 Funcția &amp;quot;citire_lin_col()&amp;quot; primește de la utilizator numărul de linii și coloane ale matricei, asigurându-se că acestea respectă condițiile de a fi întregi și să se încadreze între 1 și 100. În caz contrar, programul afișează un mesaj de eroare și se oprește prin utilizarea funcției &amp;quot;exit()&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 Funcția &amp;quot;citeste_valori_matrice(lin, col)&amp;quot; cere utilizatorului să introducă valorile matricei. Aceasta primește dimensiunile matricei, după care primește câte un element pe rând și îl adaugă la matricea creată. Funcția verifică, de asemenea, dacă numerele introduse sunt întregi și respectă condițiile de a fi cuprinse între 0 și 1.000.000, și afișează un mesaj de eroare în cazul în care introducerea nu este validă.&lt;br /&gt;
&lt;br /&gt;
 Funcția &amp;quot;maxim_apariti(matrice)&amp;quot; identifică elementele din matrice care apar cel mai frecvent. Folosind un dicționar, se numără de câte ori apare fiecare element, iar apoi se determină numărul maxim de apariții. Se întorc apoi toate elementele care apar de număr maxim de ori, sortate în ordine crescătoare.&lt;br /&gt;
&lt;br /&gt;
 În secțiunea principală a codului, se apelează cele trei funcții în ordine, după care se afișează elementele identificate de funcția &amp;quot;maxim_apariti(matrice)&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0659_-_Suma_Linii_1&amp;diff=2908</id>
		<title>0659 - Suma Linii 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0659_-_Suma_Linii_1&amp;diff=2908"/>
		<updated>2023-04-04T18:01:22Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: /* Rezolvare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/659/sumalinii1 0659 - Suma Linii 1]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o &#039;&#039;&#039;matrice&#039;&#039;&#039; cu &#039;&#039;&#039;lin&#039;&#039;&#039; linii şi &#039;&#039;&#039;col&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine pentru fiecare linie, cea mai mică valoare care se poate obține adunând elementele de pe linie, cu excepția unuia.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;lin&#039;&#039;&#039; şi &#039;&#039;&#039;col&#039;&#039;&#039;, iar apoi &#039;&#039;lin * col&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;, urmat, pe rândul următor, de &#039;&#039;&#039;lin&#039;&#039;&#039; numere, separate prin câte un spațiu reprezentând valorile obținute pentru fiecare linie, de sus în jos. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;les; 100&lt;br /&gt;
* &#039;&#039;element matrice&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 0 &amp;amp;les; &#039;&#039;element matrice&#039;&#039; &amp;amp;lt; 1.000.000&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 4&lt;br /&gt;
: 5 5 10 5&lt;br /&gt;
: 3 9 1 9&lt;br /&gt;
: 4 10 1 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
: 15 13 7&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 5&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 63.5 8 23 22 14 18&lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
=== Exemplu 3 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2 -25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 10_000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def suma_linie(matrice):&lt;br /&gt;
    sume = []&lt;br /&gt;
    for i, linie in enumerate(matrice):&lt;br /&gt;
        # eliminam un element din linie si calculam suma&lt;br /&gt;
        min_suma = sum(linie) - max(linie)&lt;br /&gt;
        sume.append(min_suma)&lt;br /&gt;
    return sume&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   sume = suma_linie(matrice)&lt;br /&gt;
   for i, min_suma in enumerate(sume):&lt;br /&gt;
       print(f&amp;quot;Cea mai mica valoare obtinuta prin adunarea elementelor de pe linia {i + 1}, cu exceptia unuia, este {min_suma}.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod are ca scop citirea unei matrice de dimensiune specificată de utilizator, calcularea sumei minime pe fiecare linie a matricei, cu excepția unui singur element, și afișarea acestor sume pentru fiecare linie a matricei.&lt;br /&gt;
&lt;br /&gt;
 Funcția citire_lin_col primește de la utilizator numărul de linii și coloane pe care le va avea matricea. Se verifică ca numărul de linii și coloane să fie între 1 și 100, iar în caz contrar se afișează un mesaj de eroare și programul se închide. Dacă valorile introduse de utilizator sunt corecte, se afișează un mesaj de confirmare și se returnează numărul de linii și coloane.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori_matrice primește numărul de linii și coloane ale matricei și cere utilizatorului să introducă valorile pentru fiecare element al matricei. Se verifică ca valorile introduse să fie între 0 și 10.000, iar în caz contrar se cere introducerea unor noi valori până când acestea respectă condiția. Valorile corecte sunt adăugate în matrice și aceasta este returnată.&lt;br /&gt;
&lt;br /&gt;
 Funcția suma_linie primește matricea și calculează suma minimă a elementelor de pe fiecare linie a matricei, cu excepția elementului maxim. Rezultatele sunt stocate într-o listă și aceasta este returnată.&lt;br /&gt;
&lt;br /&gt;
 În cadrul secțiunii if _name_ == &amp;quot;_main_&amp;quot;:, programul citeste numărul de linii și coloane ale matricei, apoi valorile acesteia. În continuare se calculează și se afișează sumele minime pentru fiecare linie a matricei, cu excepția elementului maxim.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0659_-_Suma_Linii_1&amp;diff=2907</id>
		<title>0659 - Suma Linii 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0659_-_Suma_Linii_1&amp;diff=2907"/>
		<updated>2023-04-04T17:59:10Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/659/sumalinii1 0659 - Suma Linii 1]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o &#039;&#039;&#039;matrice&#039;&#039;&#039; cu &#039;&#039;&#039;lin&#039;&#039;&#039; linii şi &#039;&#039;&#039;col&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine pentru fiecare linie, cea mai mică valoare care se poate obține adunând elementele de pe linie, cu excepția unuia.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;lin&#039;&#039;&#039; şi &#039;&#039;&#039;col&#039;&#039;&#039;, iar apoi &#039;&#039;lin * col&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;, urmat, pe rândul următor, de &#039;&#039;&#039;lin&#039;&#039;&#039; numere, separate prin câte un spațiu reprezentând valorile obținute pentru fiecare linie, de sus în jos. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;les; 100&lt;br /&gt;
* &#039;&#039;element matrice&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 0 &amp;amp;les; &#039;&#039;element matrice&#039;&#039; &amp;amp;lt; 1.000.000&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 4&lt;br /&gt;
: 5 5 10 5&lt;br /&gt;
: 3 9 1 9&lt;br /&gt;
: 4 10 1 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
: 15 13 7&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 5&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 63.5 8 23 22 14 18&lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
=== Exemplu 3 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2 -25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 10_000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def suma_linie(matrice):&lt;br /&gt;
    sume = []&lt;br /&gt;
    for i, linie in enumerate(matrice):&lt;br /&gt;
        # eliminam un element din linie si calculam suma&lt;br /&gt;
        min_suma = sum(linie) - max(linie)&lt;br /&gt;
        sume.append(min_suma)&lt;br /&gt;
    return sume&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   sume = suma_linie(matrice)&lt;br /&gt;
   for i, min_suma in enumerate(sume):&lt;br /&gt;
       print(f&amp;quot;Cea mai mica valoare obtinuta prin adunarea elementelor de pe linia {i + 1}, cu exceptia unuia, este {min_suma}.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
 Acest cod are ca scop citirea unei matrice de dimensiune specificată de utilizator, calcularea sumei minime pe fiecare linie a matricei, cu excepția unui singur element, și afișarea acestor sume pentru fiecare linie a matricei.&lt;br /&gt;
&lt;br /&gt;
 Funcția citire_lin_col primește de la utilizator numărul de linii și coloane pe care le va avea matricea. Se verifică ca numărul de linii și coloane să fie între 1 și 100, iar în caz contrar se afișează un mesaj de eroare și programul se închide. Dacă valorile introduse de utilizator sunt corecte, se afișează un mesaj de confirmare și se returnează numărul de linii și coloane.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori_matrice primește numărul de linii și coloane ale matricei și cere utilizatorului să introducă valorile pentru fiecare element al matricei. Se verifică ca valorile introduse să fie între 0 și 10.000, iar în caz contrar se cere introducerea unor noi valori până când acestea respectă condiția. Valorile corecte sunt adăugate în matrice și aceasta este returnată.&lt;br /&gt;
&lt;br /&gt;
 Funcția suma_linie primește matricea și calculează suma minimă a elementelor de pe fiecare linie a matricei, cu excepția elementului maxim. Rezultatele sunt stocate într-o listă și aceasta este returnată.&lt;br /&gt;
&lt;br /&gt;
 În cadrul secțiunii if _name_ == &amp;quot;_main_&amp;quot;:, programul citeste numărul de linii și coloane ale matricei, apoi valorile acesteia. În continuare se calculează și se afișează sumele minime pentru fiecare linie a matricei, cu excepția elementului maxim.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0316_-_Min_Cols_2&amp;diff=2906</id>
		<title>0316 - Min Cols 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0316_-_Min_Cols_2&amp;diff=2906"/>
		<updated>2023-04-04T17:58:46Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
m, n = map(int, input().split())&lt;br /&gt;
a = []&lt;br /&gt;
for i in range(m):&lt;br /&gt;
    row = list(map(int, input().split()))&lt;br /&gt;
    a.append(row)&lt;br /&gt;
&lt;br /&gt;
# determinarea valorii minime din matrice&lt;br /&gt;
min_val = 10000&lt;br /&gt;
for i in range(m):&lt;br /&gt;
    for j in range(n):&lt;br /&gt;
        if a[i][j] &amp;lt; min_val:&lt;br /&gt;
            min_val = a[i][j]&lt;br /&gt;
&lt;br /&gt;
# înlocuirea elementelor de pe coloanele care conțin valoarea minimă cu valoarea minimă&lt;br /&gt;
for j in range(n):&lt;br /&gt;
    col_min = 10000&lt;br /&gt;
    for i in range(m):&lt;br /&gt;
        if a[i][j] &amp;lt; col_min:&lt;br /&gt;
            col_min = a[i][j]&lt;br /&gt;
    if col_min == min_val:&lt;br /&gt;
        for i in range(m):&lt;br /&gt;
            a[i][j] = min_val&lt;br /&gt;
&lt;br /&gt;
# afișarea matricei modificate&lt;br /&gt;
for i in range(m):&lt;br /&gt;
    for j in range(n):&lt;br /&gt;
        print(a[i][j], end=&#039; &#039;)&lt;br /&gt;
    print()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0316_-_Min_Cols_2&amp;diff=2905</id>
		<title>0316 - Min Cols 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0316_-_Min_Cols_2&amp;diff=2905"/>
		<updated>2023-04-04T17:57:37Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: == Rezolvare == # citirea datelor de intrare m, n = map(int, input().split()) a = [] for i in range(m):     row = list(map(int, input().split()))     a.append(row)  # determinarea valorii minime din matrice min_val = 10000 for i in range(m):     for j in range(n):         if a[i][j] &amp;lt; min_val:             min_val = a[i][j]  # înlocuirea elementelor de pe coloanele care conțin valoarea minimă cu valoarea minimă for j in range(n):     col_min = 10000     for i in range(m):...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rezolvare ==&lt;br /&gt;
# citirea datelor de intrare&lt;br /&gt;
m, n = map(int, input().split())&lt;br /&gt;
a = []&lt;br /&gt;
for i in range(m):&lt;br /&gt;
    row = list(map(int, input().split()))&lt;br /&gt;
    a.append(row)&lt;br /&gt;
&lt;br /&gt;
# determinarea valorii minime din matrice&lt;br /&gt;
min_val = 10000&lt;br /&gt;
for i in range(m):&lt;br /&gt;
    for j in range(n):&lt;br /&gt;
        if a[i][j] &amp;lt; min_val:&lt;br /&gt;
            min_val = a[i][j]&lt;br /&gt;
&lt;br /&gt;
# înlocuirea elementelor de pe coloanele care conțin valoarea minimă cu valoarea minimă&lt;br /&gt;
for j in range(n):&lt;br /&gt;
    col_min = 10000&lt;br /&gt;
    for i in range(m):&lt;br /&gt;
        if a[i][j] &amp;lt; col_min:&lt;br /&gt;
            col_min = a[i][j]&lt;br /&gt;
    if col_min == min_val:&lt;br /&gt;
        for i in range(m):&lt;br /&gt;
            a[i][j] = min_val&lt;br /&gt;
&lt;br /&gt;
# afișarea matricei modificate&lt;br /&gt;
for i in range(m):&lt;br /&gt;
    for j in range(n):&lt;br /&gt;
        print(a[i][j], end=&#039; &#039;)&lt;br /&gt;
    print()&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0771_-_Ord_Lin&amp;diff=2902</id>
		<title>0771 - Ord Lin</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0771_-_Ord_Lin&amp;diff=2902"/>
		<updated>2023-04-04T17:36:12Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/771/ordlin 0771 - Ord Lin]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o &#039;&#039;&#039;matrice&#039;&#039;&#039; cu &#039;&#039;&#039;lin&#039;&#039;&#039; linii şi &#039;&#039;&#039;col&#039;&#039;&#039; coloane şi elemente numere naturale. Să se ordoneze liniile matricei crescător după suma elementelor.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;lin&#039;&#039;&#039; şi &#039;&#039;&#039;col&#039;&#039;&#039;, iar apoi &#039;&#039;lin * col&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;, urmat, pe rândul următor, de &#039;&#039;&#039;lin&#039;&#039;&#039; numere, separate prin câte un spațiu reprezentând valorile obținute pentru fiecare linie, de sus în jos. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;les; 100&lt;br /&gt;
* &#039;&#039;element matrice&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 0 &amp;amp;les; &#039;&#039;element matrice&#039;&#039; &amp;amp;lt; 1.000.000&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 4 6&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 1 8 23 22 14 18 &lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
: 3 18 8 20 12 5&lt;br /&gt;
: 1 8 23 22 14 18&lt;br /&gt;
: 4 20 15 23 18 9&lt;br /&gt;
: 17 15 13 18 12 15&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 5&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 63.5 8 23 22 14 18&lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
=== Exemplu 3 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2 -25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 1000000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def ord_lin(matrice):&lt;br /&gt;
    sorted_matrix = sorted(matrice, key=lambda row: sum(row))&lt;br /&gt;
    return sorted_matrix&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   matrice_ordonata = ord_lin(matrice)&lt;br /&gt;
   print(&amp;quot;Matricea ordonată după suma elementelor de pe fiecare linie:&amp;quot;, matrice_ordonata)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod definește trei funcții. Funcția &amp;quot;citire_lin_col&amp;quot; primește numărul de linii și coloane ale unei matrice și verifică dacă valorile introduse se încadrează în anumite restricții, apoi le returnează. Funcția &amp;quot;citeste_valori_matrice&amp;quot; primește dimensiunile matricei și citeste valorile elementelor acesteia, verificând dacă se încadrează într-un anumit interval de valori și returnând matricea completată. Funcția &amp;quot;ord_lin&amp;quot; primește o matrice și returnează aceeași matrice, dar cu liniile ordonate descrescător în funcție de suma elementelor de pe fiecare linie.&lt;br /&gt;
&lt;br /&gt;
 În cadrul buclei principale, se apelează funcția &amp;quot;citire_lin_col&amp;quot; pentru a obține dimensiunile matricei, apoi funcția &amp;quot;citeste_valori_matrice&amp;quot; pentru a completa matricea cu valorile corespunzătoare, iar apoi se apelează funcția &amp;quot;ord_lin&amp;quot; pentru a ordona liniile matricei. La final, se afișează matricea ordonată.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0666_-_Nr_Prime&amp;diff=2901</id>
		<title>0666 - Nr Prime</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0666_-_Nr_Prime&amp;diff=2901"/>
		<updated>2023-04-04T17:28:28Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/666/nrprime 0666 - Nr Prime]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o &#039;&#039;&#039;matrice&#039;&#039;&#039; cu &#039;&#039;&#039;lin&#039;&#039;&#039; linii şi &#039;&#039;&#039;col&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine câte dintre elementele situate pe linii cu indici pari sunt prime.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;lin&#039;&#039;&#039; şi &#039;&#039;&#039;col&#039;&#039;&#039;, iar apoi &#039;&#039;lin * col&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;, urmat, pe rândul următor, de &#039;&#039;&#039;lin&#039;&#039;&#039; numere, separate prin câte un spațiu reprezentând valorile obținute pentru fiecare linie, de sus în jos. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;les; 100&lt;br /&gt;
* &#039;&#039;element matrice&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 0 &amp;amp;les; &#039;&#039;element matrice&#039;&#039; &amp;amp;lt; 1.000.000&lt;br /&gt;
* liniile matricei sunt numerotate de 1 la n, iar coloanele de la 1 la m&lt;br /&gt;
 == Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 4 3&lt;br /&gt;
: 5 12 10&lt;br /&gt;
: 3 9 1 &lt;br /&gt;
: 7 10 1&lt;br /&gt;
: 10 9 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
: 2&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 5&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 63.5 8 23 22 14 18&lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
=== Exemplu 3 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2 -25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 1000000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def is_prime(numar):&lt;br /&gt;
    if numar &amp;gt; 1:&lt;br /&gt;
        for divizor in range(2, int(numar / 2) + 1):&lt;br /&gt;
            if numar % divizor == 0:&lt;br /&gt;
                return False&lt;br /&gt;
        else:&lt;br /&gt;
            return True&lt;br /&gt;
    else:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
def prime(matrice):&lt;br /&gt;
    k = 0&lt;br /&gt;
    for i, linie in enumerate(matrice):&lt;br /&gt;
        if i % 2 == 0:&lt;br /&gt;
            for numar in linie:&lt;br /&gt;
                if is_prime(numar):&lt;br /&gt;
                    k += 1&lt;br /&gt;
    return k&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   k = prime(matrice)&lt;br /&gt;
   print(&amp;quot;Numarul de elemente situate pe linii cu indici pari care sunt prime este:&amp;quot;, k)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod Python definește o serie de funcții care citesc o matrice de numere întregi de la utilizator și determină câte numere prime sunt pe linii cu indici pari. Mai exact:&lt;br /&gt;
&lt;br /&gt;
 Funcția citire_lin_col() cere utilizatorului să introducă numărul de linii și de coloane ale matricei. Aceasta verifică dacă valorile introduse respectă restricțiile impuse (1 &amp;lt;= lin &amp;lt;= 100 și 1 &amp;lt;= col &amp;lt;= 100) și returnează valorile introduse dacă sunt valide, altfel afișează un mesaj de eroare și iese din program.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori_matrice(lin, col) cere utilizatorului să introducă fiecare element al matricei, linie cu linie. Aceasta verifică dacă valorile introduse sunt numere întregi valide (folosind un bloc try-except), apoi verifică dacă sunt în intervalul permis (0 &amp;lt;= n &amp;lt;= 1000000). Dacă valorile sunt valide, ele sunt adăugate în matrice. Funcția returnează matricea creată.&lt;br /&gt;
&lt;br /&gt;
 Funcția is_prime(numar) primește un număr întreg și verifică dacă este prim. Funcția folosește o metodă simplă de verificare a divizorilor (încercând toți divizorii între 2 și jumătatea numărului) și returnează True dacă numărul este prim, altfel returnează False.&lt;br /&gt;
&lt;br /&gt;
 Funcția prime(matrice) primește matricea creată în pasul 2 și numără câte numere prime sunt pe linii cu indici pari. Aceasta parcurge fiecare linie cu un index (i) și verifică dacă este par (i % 2 == 0). Dacă linia are un index par, fiecare element este verificat cu ajutorul funcției is_prime(). Dacă numărul este prim, k este incrementat cu 1. Funcția returnează k.&lt;br /&gt;
&lt;br /&gt;
 În blocul principal if _name_ == &amp;quot;_main_&amp;quot;:, se apelează funcțiile definite în ordine, iar rezultatul obținut este afișat utilizatorului.&lt;br /&gt;
&lt;br /&gt;
 Astfel, acest cod primește o matrice de la utilizator și numără câte numere prime sunt pe linii cu indici pari.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0658_-_Suma_Linii&amp;diff=2900</id>
		<title>0658 - Suma Linii</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0658_-_Suma_Linii&amp;diff=2900"/>
		<updated>2023-04-04T17:23:49Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/658/sumalinii 0658 - Suma Linii]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o &#039;&#039;&#039;matrice&#039;&#039;&#039; cu &#039;&#039;&#039;lin&#039;&#039;&#039; linii şi &#039;&#039;&#039;col&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine suma elementelor de pe fiecare linie.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;lin&#039;&#039;&#039; şi &#039;&#039;&#039;col&#039;&#039;&#039;, iar apoi &#039;&#039;lin * col&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;, urmat, pe rândul următor, de &#039;&#039;&#039;lin&#039;&#039;&#039; numere, separate prin câte un spațiu reprezentând suma elementelor de pe fiecare linie, de sus în jos. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;les; 100&lt;br /&gt;
* &#039;&#039;element matrice&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 0 &amp;amp;les; &#039;&#039;element matrice&#039;&#039; &amp;amp;lt; 1.000.000&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 4&lt;br /&gt;
: 5 5 10 5 &lt;br /&gt;
: 3 9 1 2 &lt;br /&gt;
: 4 10 1 2 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
: 25 15 17&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 5&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 63.5 8 23 22 14 18&lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
=== Exemplu 3 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2 -25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 10_000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def suma_linie(matrice):&lt;br /&gt;
    sume_linii = []&lt;br /&gt;
    for linie in matrice:&lt;br /&gt;
        suma = 0&lt;br /&gt;
        for element in linie:&lt;br /&gt;
            suma += element&lt;br /&gt;
        sume_linii.append(suma)&lt;br /&gt;
    return sume_linii&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   sume = suma_linie(matrice)&lt;br /&gt;
   for i, suma in enumerate(sume):&lt;br /&gt;
       print(f&amp;quot;Suma elementelor de pe linia {i + 1} este {suma}.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod definește trei funcții și o secțiune de cod principal care le folosește pentru a citi o matrice de numere întregi și a calcula suma elementelor de pe fiecare linie.&lt;br /&gt;
&lt;br /&gt;
 Funcția citire_lin_col() citeste numarul de linii și coloane ale matricei de la utilizator și se asigură că sunt conform restricțiilor impuse: între 1 și 100. Dacă datele introduse de utilizator sunt corecte, funcția returnează aceste valori.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori_matrice(lin, col) citește valorile matricei de la utilizator. Matricea este construită utilizând o listă de liste. Funcția citește fiecare valoare a matricei și se asigură că acestea sunt între 0 și 10.000. Funcția returnează matricea.&lt;br /&gt;
&lt;br /&gt;
 Funcția suma_linie(matrice) calculează suma elementelor de pe fiecare linie a matricei. Funcția parcurge fiecare linie a matricei, calculează suma elementelor de pe linie și stochează aceste sume într-o listă. Funcția returnează lista cu sumele elementelor de pe fiecare linie a matricei.&lt;br /&gt;
&lt;br /&gt;
 În secțiunea de cod principal, se apelează funcția citire_lin_col() pentru a citi dimensiunile matricei, apoi funcția citeste_valori_matrice() pentru a citi valorile matricei. Acestea sunt stocate în variabila matrice. Apoi, se apelează funcția suma_linie() pentru a calcula suma elementelor de pe fiecare linie a matricei. Rezultatele sunt stocate în lista sume. În final, se parcurge lista sume și se afișează suma elementelor de pe fiecare linie a matricei.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0767_-_Suma_Pare2&amp;diff=2899</id>
		<title>0767 - Suma Pare2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0767_-_Suma_Pare2&amp;diff=2899"/>
		<updated>2023-04-04T17:19:54Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/767/sumapare2 0767 - Suma Pare 2]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o &#039;&#039;&#039;matrice&#039;&#039;&#039; cu &#039;&#039;&#039;lin&#039;&#039;&#039; linii şi &#039;&#039;&#039;col&#039;&#039;&#039; coloane şi elemente numere naturale. Determinați suma valorilor pare din &#039;&#039;&#039;matrice&#039;&#039;&#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;lin&#039;&#039;&#039; şi &#039;&#039;&#039;col&#039;&#039;&#039;, iar apoi &#039;&#039;lin * col&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;, urmat, pe rândul următor, de suma căutată. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;les; 100&lt;br /&gt;
* &#039;&#039;element matrice&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 0 &amp;amp;les; &#039;&#039;element matrice&#039;&#039; &amp;amp;lt; 10000&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 4 6&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 1 8 23 22 14 18&lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
: 192&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 5&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 63.5 8 23 22 14 18&lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
=== Exemplu 3 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2 -25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 10_000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def suma_pare2(matrice):&lt;br /&gt;
    raspuns = 0&lt;br /&gt;
    for linie in matrice:&lt;br /&gt;
        for element in linie:&lt;br /&gt;
            if element % 2 == 0:&lt;br /&gt;
                raspuns += element&lt;br /&gt;
    return raspuns&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;quot;_main_&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   rezultat = suma_pare2(matrice)&lt;br /&gt;
   print(f&amp;quot;Suma elementelor pare din matrice este {rezultat}.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod este scris in limbajul de programare Python si contine trei functii:&lt;br /&gt;
&lt;br /&gt;
 citire_lin_col() - aceasta functie citeste de la tastatura numarul de linii si de coloane ale matricei, verificand daca acestea se incadreaza in intervalul [1, 100]. Daca datele sunt corecte, functia returneaza aceste doua valori.&lt;br /&gt;
&lt;br /&gt;
 citeste_valori_matrice() - aceasta functie creeaza o matrice goala si citeste de la tastatura valorile fiecarui element din matrice, verificand daca fiecare valoare este in intervalul [0, 10000]. Daca datele sunt corecte, functia adauga valoarea citita la matrice. Functia ruleaza intr-un loop infinit si poate fi oprita doar prin folosirea functiei exit().&lt;br /&gt;
&lt;br /&gt;
 suma_pare2() - aceasta functie primeste ca argument o matrice si calculeaza suma tuturor elementelor pare din aceasta matrice, inlocuind valoarea initiala a variabilei &amp;quot;raspuns&amp;quot; cu aceasta suma.&lt;br /&gt;
&lt;br /&gt;
 In programul principal, se apeleaza cele trei functii in ordinea citire_lin_col(), citeste_valori_matrice() si suma_pare2(), iar rezultatul este stocat in variabila &amp;quot;rezultat&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0659_-_Suma_Linii_1&amp;diff=2898</id>
		<title>0659 - Suma Linii 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0659_-_Suma_Linii_1&amp;diff=2898"/>
		<updated>2023-04-04T17:13:05Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/659/sumalinii1 0659 - Suma Linii 1]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o &#039;&#039;&#039;matrice&#039;&#039;&#039; cu &#039;&#039;&#039;lin&#039;&#039;&#039; linii şi &#039;&#039;&#039;col&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine pentru fiecare linie, cea mai mică valoare care se poate obține adunând elementele de pe linie, cu excepția unuia.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;lin&#039;&#039;&#039; şi &#039;&#039;&#039;col&#039;&#039;&#039;, iar apoi &#039;&#039;lin * col&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;, urmat, pe rândul următor, de &#039;&#039;&#039;lin&#039;&#039;&#039; numere, separate prin câte un spațiu reprezentând valorile obținute pentru fiecare linie, de sus în jos. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;les; 100&lt;br /&gt;
* &#039;&#039;element matrice&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 0 &amp;amp;les; &#039;&#039;element matrice&#039;&#039; &amp;amp;lt; 1.000.000&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 4&lt;br /&gt;
: 5 5 10 5&lt;br /&gt;
: 3 9 1 9&lt;br /&gt;
: 4 10 1 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
: 15 13 7&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 5&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 63.5 8 23 22 14 18&lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
=== Exemplu 3 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2 -25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
=== Rezolvare ver. 1 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citire_lin_col():&lt;br /&gt;
    try:&lt;br /&gt;
        lin = int(input(&amp;quot;Introduceti numarul de linii: &amp;quot;))&lt;br /&gt;
        col = int(input(&amp;quot;Introduceti numarul de coloane: &amp;quot;))&lt;br /&gt;
        if 1 &amp;lt;= lin &amp;lt;= 100 and 1 &amp;lt;= col &amp;lt;= 100:&lt;br /&gt;
            print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
            return lin, col&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori_matrice(lin, col):&lt;br /&gt;
    matrice = []&lt;br /&gt;
    for linie in range(lin):&lt;br /&gt;
        matrice.append([])&lt;br /&gt;
        for coloana in range(col):&lt;br /&gt;
            while True:&lt;br /&gt;
                try:&lt;br /&gt;
                    n = int(input(&amp;quot;Introduceti un numar: &amp;quot;))&lt;br /&gt;
                    if 0 &amp;lt;= n &amp;lt;= 10_000:&lt;br /&gt;
                        print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                        matrice[linie].append(n)&lt;br /&gt;
                        break&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                except ValueError:&lt;br /&gt;
                    print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
def suma_linie(matrice):&lt;br /&gt;
    sume = []&lt;br /&gt;
    for i, linie in enumerate(matrice):&lt;br /&gt;
        # eliminam un element din linie si calculam suma&lt;br /&gt;
        min_suma = sum(linie) - max(linie)&lt;br /&gt;
        sume.append(min_suma)&lt;br /&gt;
    return sume&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
   n, m = citire_lin_col()&lt;br /&gt;
   matrice = citeste_valori_matrice(n, m)&lt;br /&gt;
   sume = suma_linie(matrice)&lt;br /&gt;
   for i, min_suma in enumerate(sume):&lt;br /&gt;
       print(f&amp;quot;Cea mai mica valoare obtinuta prin adunarea elementelor de pe linia {i + 1}, cu exceptia unuia, este {min_suma}.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
 Acest cod are ca scop citirea unei matrice de dimensiune specificată de utilizator, calcularea sumei minime pe fiecare linie a matricei, cu excepția unui singur element, și afișarea acestor sume pentru fiecare linie a matricei.&lt;br /&gt;
&lt;br /&gt;
 Funcția citire_lin_col primește de la utilizator numărul de linii și coloane pe care le va avea matricea. Se verifică ca numărul de linii și coloane să fie între 1 și 100, iar în caz contrar se afișează un mesaj de eroare și programul se închide. Dacă valorile introduse de utilizator sunt corecte, se afișează un mesaj de confirmare și se returnează numărul de linii și coloane.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori_matrice primește numărul de linii și coloane ale matricei și cere utilizatorului să introducă valorile pentru fiecare element al matricei. Se verifică ca valorile introduse să fie între 0 și 10.000, iar în caz contrar se cere introducerea unor noi valori până când acestea respectă condiția. Valorile corecte sunt adăugate în matrice și aceasta este returnată.&lt;br /&gt;
&lt;br /&gt;
 Funcția suma_linie primește matricea și calculează suma minimă a elementelor de pe fiecare linie a matricei, cu excepția elementului maxim. Rezultatele sunt stocate într-o listă și aceasta este returnată.&lt;br /&gt;
&lt;br /&gt;
 În cadrul secțiunii if _name_ == &amp;quot;_main_&amp;quot;:, programul citeste numărul de linii și coloane ale matricei, apoi valorile acesteia. În continuare se calculează și se afișează sumele minime pentru fiecare linie a matricei, cu excepția elementului maxim.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0666_-_Nr_Prime&amp;diff=2897</id>
		<title>0666 - Nr Prime</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0666_-_Nr_Prime&amp;diff=2897"/>
		<updated>2023-04-04T17:03:18Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/666/nrprime 0666 - Nr Prime]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă o &#039;&#039;&#039;matrice&#039;&#039;&#039; cu &#039;&#039;&#039;lin&#039;&#039;&#039; linii şi &#039;&#039;&#039;col&#039;&#039;&#039; coloane şi elemente numere naturale. Să se determine câte dintre elementele situate pe linii cu indici pari sunt prime.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;lin&#039;&#039;&#039; şi &#039;&#039;&#039;col&#039;&#039;&#039;, iar apoi &#039;&#039;lin * col&#039;&#039; numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Pe ecran se va afișa mesajul: &amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;, urmat, pe rândul următor, de &#039;&#039;&#039;lin&#039;&#039;&#039; numere, separate prin câte un spațiu reprezentând valorile obținute pentru fiecare linie, de sus în jos. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa &amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 1 &amp;amp;les; &#039;&#039;&#039;lin&#039;&#039;&#039;, &#039;&#039;&#039;col&#039;&#039;&#039; &amp;amp;les; 100&lt;br /&gt;
* &#039;&#039;element matrice&#039;&#039; &amp;amp;isin; &amp;amp;#8469;&lt;br /&gt;
* 0 &amp;amp;les; &#039;&#039;element matrice&#039;&#039; &amp;amp;lt; 1.000.000&lt;br /&gt;
* liniile matricei sunt numerotate de 1 la n, iar coloanele de la 1 la m&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 4 3&lt;br /&gt;
: 5 12 10&lt;br /&gt;
: 3 9 1 &lt;br /&gt;
: 7 10 1&lt;br /&gt;
: 10 9 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund restricțiilor impuse.&lt;br /&gt;
: 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 5&lt;br /&gt;
: 4 20 15 23 18 9 &lt;br /&gt;
: 63.5 8 23 22 14 18&lt;br /&gt;
: 17 15 13 18 12 15 &lt;br /&gt;
: 3 18 8 20 12 5 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2 -25&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
=== Rezolvare ver. 1 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0766_-_Nr_Pare&amp;diff=2886</id>
		<title>0766 - Nr Pare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0766_-_Nr_Pare&amp;diff=2886"/>
		<updated>2023-04-03T19:45:48Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: == Rezolvare == &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt; n, m = map(int, input().split())  max_count = 0 max_rows = []  for i in range(n):     row = list(map(int, input().split()))     count = sum(1 for x in row if x % 2 == 0)     if count &amp;gt; max_count:         max_count = count         max_rows = [i+1]     elif count == max_count:         max_rows.append(i+1)  if max_count == 0:     print(&amp;quot;NU EXISTA&amp;quot;) else:     print(*max_rows) &amp;lt;/syntaxhighlight&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
n, m = map(int, input().split())&lt;br /&gt;
&lt;br /&gt;
max_count = 0&lt;br /&gt;
max_rows = []&lt;br /&gt;
&lt;br /&gt;
for i in range(n):&lt;br /&gt;
    row = list(map(int, input().split()))&lt;br /&gt;
    count = sum(1 for x in row if x % 2 == 0)&lt;br /&gt;
    if count &amp;gt; max_count:&lt;br /&gt;
        max_count = count&lt;br /&gt;
        max_rows = [i+1]&lt;br /&gt;
    elif count == max_count:&lt;br /&gt;
        max_rows.append(i+1)&lt;br /&gt;
&lt;br /&gt;
if max_count == 0:&lt;br /&gt;
    print(&amp;quot;NU EXISTA&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(*max_rows)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0768_-_Suma_Pare_3&amp;diff=2885</id>
		<title>0768 - Suma Pare 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0768_-_Suma_Pare_3&amp;diff=2885"/>
		<updated>2023-04-03T19:42:18Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: == rezolvare == &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt; n, m = map(int, input().split()) matrix = [list(map(int, input().split())) for _ in range(n)]  unique_even = set() for i in range(n):     for j in range(m):         if matrix[i][j] % 2 == 0:             unique_even.add(matrix[i][j])  print(sum(unique_even)) &amp;lt;/syntaxhighlight&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
n, m = map(int, input().split())&lt;br /&gt;
matrix = [list(map(int, input().split())) for _ in range(n)]&lt;br /&gt;
&lt;br /&gt;
unique_even = set()&lt;br /&gt;
for i in range(n):&lt;br /&gt;
    for j in range(m):&lt;br /&gt;
        if matrix[i][j] % 2 == 0:&lt;br /&gt;
            unique_even.add(matrix[i][j])&lt;br /&gt;
&lt;br /&gt;
print(sum(unique_even))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0804_-_Col_Egale&amp;diff=2884</id>
		<title>0804 - Col Egale</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0804_-_Col_Egale&amp;diff=2884"/>
		<updated>2023-04-03T19:34:58Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: == Rezolvare == &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt; m, n = map(int, input().split())  matrix = [] for i in range(m):     row = list(map(int, input().split()))     matrix.append(row)  found = False for j in range(n):     col = [matrix[i][j] for i in range(m)]     if len(set(col)) == 1:         print(col[0], end=&amp;#039; &amp;#039;)         found = True  if not found:     print(&amp;quot;nu exista&amp;quot;) &amp;lt;/syntaxhighlight&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
m, n = map(int, input().split())&lt;br /&gt;
&lt;br /&gt;
matrix = []&lt;br /&gt;
for i in range(m):&lt;br /&gt;
    row = list(map(int, input().split()))&lt;br /&gt;
    matrix.append(row)&lt;br /&gt;
&lt;br /&gt;
found = False&lt;br /&gt;
for j in range(n):&lt;br /&gt;
    col = [matrix[i][j] for i in range(m)]&lt;br /&gt;
    if len(set(col)) == 1:&lt;br /&gt;
        print(col[0], end=&#039; &#039;)&lt;br /&gt;
        found = True&lt;br /&gt;
&lt;br /&gt;
if not found:&lt;br /&gt;
    print(&amp;quot;nu exista&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0789_-_Max_2_Ap&amp;diff=2883</id>
		<title>0789 - Max 2 Ap</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0789_-_Max_2_Ap&amp;diff=2883"/>
		<updated>2023-04-03T19:31:33Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: Pagină nouă: == Rezolvare == &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt; n, m = map(int, input().split())  matrix = [] for i in range(n):     row = list(map(int, input().split()))     matrix.append(row)  seen = set() max_duplicate = None  for i in range(n):     for j in range(m):         value = matrix[i][j]         if value in seen and (max_duplicate is None or value &amp;gt; max_duplicate):             max_duplicate = value         else:             seen.add(value)  if max_duplicate is None:...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
n, m = map(int, input().split())&lt;br /&gt;
&lt;br /&gt;
matrix = []&lt;br /&gt;
for i in range(n):&lt;br /&gt;
    row = list(map(int, input().split()))&lt;br /&gt;
    matrix.append(row)&lt;br /&gt;
&lt;br /&gt;
seen = set()&lt;br /&gt;
max_duplicate = None&lt;br /&gt;
&lt;br /&gt;
for i in range(n):&lt;br /&gt;
    for j in range(m):&lt;br /&gt;
        value = matrix[i][j]&lt;br /&gt;
        if value in seen and (max_duplicate is None or value &amp;gt; max_duplicate):&lt;br /&gt;
            max_duplicate = value&lt;br /&gt;
        else:&lt;br /&gt;
            seen.add(value)&lt;br /&gt;
&lt;br /&gt;
if max_duplicate is None:&lt;br /&gt;
    print(&amp;quot;IMPOSIBIL&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(max_duplicate)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0357_-_Perechi_1&amp;diff=1975</id>
		<title>0357 - Perechi 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0357_-_Perechi_1&amp;diff=1975"/>
		<updated>2023-03-30T17:14:04Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/357/perechi1]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
La concursul “Miss &amp;amp; Mister Boboc” participă &#039;&#039;&#039;n&#039;&#039;&#039; perechi de elevi, despre fiecare elev cunoscându-se înălțimea. Numim grad de disproporționalitate al unei perechi diferența în valoare absolută dintre înălțimile elevilor care formează perechea.&lt;br /&gt;
&lt;br /&gt;
Să se determine numărul de ordine al perechii cu grad de disproporționalitate minim.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; perechi de numere naturale, separate prin spaţii, reprezentând înălțimile elevilor dintr-o pereche.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Programul afișează pe ecran numărul de ordine al perechii cu grad de disproporționalitate minim. Dacă există mai multe perechi cu grad minim de disproporționalitate, se va afișa numărul de ordine al ultimei perechi. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039; 1≤ n ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
* perechile de elevi sunt numerotate de la &#039;&#039;&#039;1&#039;&#039;&#039; la &#039;&#039;&#039;n&#039;&#039;&#039;&lt;br /&gt;
* înălțimile elevilor sunt numere naturale cuprinse între &#039;&#039;&#039;1&#039;&#039;&#039; și &#039;&#039;&#039;1000&#039;&#039;&#039; – unitatea de măsură folosită este de origine extraterestră, nu încercați să o înțelegeți !!&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 7 9&lt;br /&gt;
: 6 7&lt;br /&gt;
: 8 12&lt;br /&gt;
: 11 10&lt;br /&gt;
: 10 6&lt;br /&gt;
: 11 13&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 4&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu sunt conform restrictiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citeste_n():&lt;br /&gt;
    while True:&lt;br /&gt;
        try:&lt;br /&gt;
            n = int(input(&amp;quot;Introduceti numarul de perechi: &amp;quot;))&lt;br /&gt;
            if n &amp;gt;= 1 and n &amp;lt;= 1000:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                return n&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        except ValueError:&lt;br /&gt;
            print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citeste_perechi(n):&lt;br /&gt;
    valori = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        while True:&lt;br /&gt;
            try:&lt;br /&gt;
                valoare1, valoare2 = map(int, input(&amp;quot;Introduceti o pereche de valori separate prin spatiu: &amp;quot;).split())&lt;br /&gt;
                if 1 &amp;lt;= valoare1 &amp;lt;= 1000 and 1 &amp;lt;= valoare2 &amp;lt;= 1000:&lt;br /&gt;
                    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                    valori.append((valoare1, valoare2))&lt;br /&gt;
                    break&lt;br /&gt;
                else:&lt;br /&gt;
                    print(&amp;quot;Datele nu sunt conform restrictiilor impuse.&amp;quot;)&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                print(&amp;quot;Trebuie introduse doar valori numerice.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    return valori&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def pereche(valori):&lt;br /&gt;
    pozitie = None&lt;br /&gt;
    diff_min = 1000000&lt;br /&gt;
    for i, pereche in enumerate(valori):&lt;br /&gt;
        a, b = pereche&lt;br /&gt;
        if a &amp;lt; b:&lt;br /&gt;
            a, b = b, a&lt;br /&gt;
        if a - b &amp;lt;= diff_min:&lt;br /&gt;
            pozitie = i + 1&lt;br /&gt;
            diff_min = a - b&lt;br /&gt;
    return pozitie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = citeste_n()&lt;br /&gt;
    valori = citeste_perechi(n)&lt;br /&gt;
    pozitie = pereche(valori)&lt;br /&gt;
    print(&amp;quot;Perechea cu diferența minimă este la poziția: &amp;quot;, pozitie)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod este scris in limbajul de programare Python si contine 3 functii si o functie de testare (main function).&lt;br /&gt;
&lt;br /&gt;
 Prima functie, &amp;quot;citeste_n()&amp;quot;, citeste numarul de perechi de valori si valideaza datele introduse de utilizator. Daca datele introduse sunt corecte, aceasta returneaza numarul de perechi.&lt;br /&gt;
&lt;br /&gt;
 A doua functie, &amp;quot;citeste_perechi(n)&amp;quot;, citeste perechile de valori, valideaza datele introduse de utilizator si le adauga intr-o lista de tupluri. Pentru fiecare pereche, se verifica daca ambele valori sunt cuprinse intre 1 si 1000, in caz contrar, utilizatorul este avertizat si i se cere sa reintroduca valorile.&lt;br /&gt;
&lt;br /&gt;
 A treia functie, &amp;quot;pereche(valori)&amp;quot;, calculeaza pozitia perechii cu cea mai mica diferenta dintre valori. Aceasta parcurge lista de perechi si pentru fiecare pereche, determina care dintre cele doua valori este mai mare si calculeaza diferenta dintre ele. Daca diferenta este mai mica sau egala decat cea anterioara, pozitia perechii este actualizata.&lt;br /&gt;
&lt;br /&gt;
 Functia de testare (main function) citeste numarul de perechi, citeste perechile de valori si calculeaza pozitia perechii cu cea mai mica diferenta dintre valori, apoi afiseaza rezultatul.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0172_-_Dif_Min&amp;diff=1973</id>
		<title>0172 - Dif Min</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0172_-_Dif_Min&amp;diff=1973"/>
		<updated>2023-03-30T16:58:28Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/172/difmin]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Să se scrie un program care citește un șir de &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale şi determină perechea de valori consecutive în șir pentru care valoarea absolută a diferenței este minimă. Dacă există mai multe astfel de perechi se va afișa cea pentru care suma este minimă. Dacă există mai multe perechi de acest fel se va afișa prima pereche din șir.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;.Programul afișează pe ecran numerele &#039;&#039;&#039;x y&#039;&#039;&#039;, reprezentând valorile cerute, separate prin exact un spaţiu. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ n ≤ 10000&#039;&#039;&#039;&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi mai mici decât &#039;&#039;&#039;1 000 000 000&#039;&#039;&#039;&lt;br /&gt;
* cele două valori vor fi afișate în ordinea din șir&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 72 30 12 165 725&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 30 12 &lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: a&lt;br /&gt;
: b c d e f&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citeste_n():&lt;br /&gt;
    while True:&lt;br /&gt;
        try:&lt;br /&gt;
            n = int(input(&amp;quot;Introduceti numarul de valori: &amp;quot;))&lt;br /&gt;
            if n &amp;gt;= 1 and n &amp;lt;= 10000:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                return n&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        except ValueError:&lt;br /&gt;
            print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citeste_valori(n):&lt;br /&gt;
    valori = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        while True:&lt;br /&gt;
            try:&lt;br /&gt;
                valoare = int(input(&amp;quot;Introduceti o valoare: &amp;quot;))&lt;br /&gt;
                if valoare &amp;lt;= 1000000000:&lt;br /&gt;
                    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                    valori.append(valoare)&lt;br /&gt;
                    break&lt;br /&gt;
                else:&lt;br /&gt;
                    print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                print(&amp;quot;Trebuie introduse doar valori numerice.&amp;quot;)&lt;br /&gt;
    return valori&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def pereche(valori):&lt;br /&gt;
    min_diff = float(&#039;inf&#039;)&lt;br /&gt;
    smin_sum = float(&#039;inf&#039;)&lt;br /&gt;
    a, b = valori[0], valori[1]&lt;br /&gt;
    for i in range(len(valori) - 1):&lt;br /&gt;
        for j in range(i + 1, len(valori)):&lt;br /&gt;
            x, y = valori[i], valori[j]&lt;br /&gt;
            if abs(x - y) &amp;lt; min_diff:&lt;br /&gt;
                min_diff = abs(x - y)&lt;br /&gt;
                a = x&lt;br /&gt;
                b = y&lt;br /&gt;
                smin_sum = x + y&lt;br /&gt;
            elif abs(x - y) == min_diff and x + y &amp;lt; smin_sum:&lt;br /&gt;
                smin_sum = x + y&lt;br /&gt;
                a = x&lt;br /&gt;
                b = y&lt;br /&gt;
    return a, b&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = citeste_n()&lt;br /&gt;
    valori = citeste_valori(n)&lt;br /&gt;
    x, y = pereche(valori)&lt;br /&gt;
    print(&amp;quot;Valorile cerute sunt: &amp;quot;, x, y)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod Python are trei funcții și un bloc de cod principal care apelează cele două funcții de citire a datelor și funcția de calcul a perechii cu diferența minimă.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_n() cere utilizatorului să introducă numărul de valori și îl validează astfel încât să fie un număr întreg între 1 și 10000. Funcția returnează numărul validat.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori(n) cere utilizatorului să introducă n valori și validează fiecare valoare astfel încât să fie un număr întreg mai mic sau egal cu 1000000000. Funcția returnează o listă de valori validate.&lt;br /&gt;
&lt;br /&gt;
 Funcția pereche(valori) primește o listă de valori și calculează perechea cu diferența minimă dintre două valori din listă. Funcția parcurge toate perechile posibile de valori din listă și calculează diferența dintre ele. Dacă diferența este mai mică decât diferența minimă anterioară, atunci se înlocuiesc valorile perechii. Dacă diferențele sunt egale, atunci se compară sumele valorilor din pereche și, dacă suma este mai mică decât suma minimă anterioară, se înlocuiesc valorile perechii.&lt;br /&gt;
&lt;br /&gt;
 Blocul de cod principal apelează cele două funcții de citire a datelor și funcția de calcul a perechii cu diferența minimă și afișează rezultatul.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3285_-_Mos_Craciun&amp;diff=1972</id>
		<title>3285 - Mos Craciun</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3285_-_Mos_Craciun&amp;diff=1972"/>
		<updated>2023-03-30T15:00:26Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/3285/moscraciun]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Cei &#039;&#039;&#039;n&#039;&#039;&#039; copii de la grădiniță stau cuminți în șir și așteaptă cadourile de la Moș Crăciun. Ei sunt numerotați de la 1 la &#039;&#039;&#039;n&#039;&#039;&#039; (se consideră că &#039;&#039;&#039;n&#039;&#039;&#039; este par) și în prima jumătate sunt copiii de la grupa mare iar în a doua jumătate sunt cei de la grupa mică (numărul de copii din fiecare grupă este același, &#039;&#039;&#039;n/2&#039;&#039;&#039;). După ce trece Moș Crăciun se știe câte cadouri a primit fiecare copil și noi dorim să aflăm câți copii din grupa mică au primit mai multe cadouri decât orice copil din grupa mare.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, separate prin spații, reprezentând, în ordine, numărul de cadouri ale fiecărui copil.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;.Programul va afișa pe ecran numărul &#039;&#039;&#039;c&#039;&#039;&#039;, valoarea cerută. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2 ≤ n ≤ 20&#039;&#039;&#039;, par&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor fi naturale nenule mai mici decât &#039;&#039;&#039;1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 6&lt;br /&gt;
: 1 6 3 6 8 2&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 1&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1&lt;br /&gt;
: 1 5 3  8 &lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
=== Exemplu 3 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 21&lt;br /&gt;
: 1 6 3 6 8 2 5 6 2 3 4 2 1 5 3 2 1 5 3 6 4&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citeste_n():&lt;br /&gt;
    while True:&lt;br /&gt;
        try:&lt;br /&gt;
            n = int(input(&amp;quot;Introduceti numarul de valori: &amp;quot;))&lt;br /&gt;
            if n &amp;gt;= 2 and n &amp;lt;= 20:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                return n&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        except ValueError:&lt;br /&gt;
            print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citeste_valori(n):&lt;br /&gt;
    valori = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        while True:&lt;br /&gt;
            try:&lt;br /&gt;
                valoare = int(input(&amp;quot;Introduceti o valoare: &amp;quot;))&lt;br /&gt;
                if valoare &amp;lt;= 1000000000:&lt;br /&gt;
                    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                    valori.append(valoare)&lt;br /&gt;
                    break&lt;br /&gt;
                else:&lt;br /&gt;
                    print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                print(&amp;quot;Trebuie introduse doar valori numerice.&amp;quot;)&lt;br /&gt;
    return valori&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def cadouri(valori):&lt;br /&gt;
    maxi = 0&lt;br /&gt;
    k = 0&lt;br /&gt;
    for i in range(1, len(valori) // 2 + 1):&lt;br /&gt;
        if valori[i - 1] &amp;gt; maxi:&lt;br /&gt;
            maxi = valori[i - 1]&lt;br /&gt;
&lt;br /&gt;
    for i in range(len(valori) // 2 + 1, len(valori) + 1):&lt;br /&gt;
        if valori[i - 1] &amp;gt; maxi:&lt;br /&gt;
            k += 1&lt;br /&gt;
    return k&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = citeste_n()&lt;br /&gt;
    valori = citeste_valori(n)&lt;br /&gt;
    k = cadouri(valori)&lt;br /&gt;
    print(&amp;quot;Numarul de copii este:&amp;quot;, k)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 citeste_n(): Această funcție citește de la tastatură numărul de valori pe care utilizatorul dorește să le introducă și verifică dacă acestea respectă restricțiile impuse (între 2 și 20). În caz contrar, utilizatorul este notificat că datele nu sunt conform restricțiilor și i se cere să introducă din nou un număr corect.&lt;br /&gt;
&lt;br /&gt;
 citeste_valori(n): Această funcție primește ca parametru numărul de valori introduse de utilizator și citește aceste valori de la tastatură, verificând dacă acestea sunt valori numerice și respectă restricțiile impuse (mai mici sau egale cu 1 miliard). În caz contrar, utilizatorul este notificat că datele nu sunt conform restricțiilor și i se cere să introducă din nou valori corecte.&lt;br /&gt;
&lt;br /&gt;
 cadouri(valori): Această funcție primește ca parametru lista de valori introduse de utilizator și calculează numărul de copii care vor primi cadouri în funcție de restricția dată: copiii vor primi cadouri de la jumătatea listei în sus numai dacă valoarea cadoului este mai mare decât orice valoare anterioară. Dacă valoarea maximă se găsește în prima jumătate a listei, atunci niciun copil nu va primi cadouri. Funcția returnează numărul de copii care primesc cadouri.&lt;br /&gt;
&lt;br /&gt;
 În funcția cadouri(valori), prima buclă for calculează valoarea maximă din prima jumătate a listei, iar cea de-a doua buclă for numără câți copii primesc cadouri în a doua jumătate a listei. Funcția returnează valoarea acestui număr, care este apoi afișată pe ecran în funcția main().&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0274_-_3_Minime&amp;diff=1971</id>
		<title>0274 - 3 Minime</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0274_-_3_Minime&amp;diff=1971"/>
		<updated>2023-03-30T14:15:12Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/274/3minime]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale. Determinaţi cele mai mici trei numere dintre cele date.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;.Programul afișează pe ecran, în ordine descrescătoare, cele mai mici trei numere date.În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;3 ≤ n ≤ 100&#039;&#039;&#039;&lt;br /&gt;
* cele &#039;&#039;&#039;n&#039;&#039;&#039; numere citite vor avea cel mult &#039;&#039;&#039;4&#039;&#039;&#039; cifre&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 1017 48 310 5710 162&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 310 162 48&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2&lt;br /&gt;
: 10 4 30 510 16&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
=== Exemplu 3 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1&lt;br /&gt;
: 1017 48 310 5710 162&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citeste_n():&lt;br /&gt;
    while True:&lt;br /&gt;
        try:&lt;br /&gt;
            n = int(input(&amp;quot;Introduceti numarul de valori: &amp;quot;))&lt;br /&gt;
            if n &amp;gt;= 3 and n &amp;lt;= 100:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                return n&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        except ValueError:&lt;br /&gt;
            print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def nrcifre(nr):&lt;br /&gt;
    nrcif = 0&lt;br /&gt;
    while nr != 0:&lt;br /&gt;
        nrcif += 1&lt;br /&gt;
        nr //= 10&lt;br /&gt;
    return nrcif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citeste_valori(n):&lt;br /&gt;
    valori = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        valoare = input(&amp;quot;Introduceti o valoare: &amp;quot;)&lt;br /&gt;
        while True:&lt;br /&gt;
            try:&lt;br /&gt;
                cifre = nrcifre(int(valoare))&lt;br /&gt;
                if cifre &amp;lt;= 4:&lt;br /&gt;
                    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                    valori.append(int(valoare))&lt;br /&gt;
                    break&lt;br /&gt;
                else:&lt;br /&gt;
                    print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                    exit()&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                print(&amp;quot;Trebuie introduse doar valori cu mai putin de 9 cifre.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
    return valori&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def numere_minime(valori):&lt;br /&gt;
&lt;br /&gt;
    valori.sort()&lt;br /&gt;
    return valori[0], valori[1], valori[2]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = citeste_n()&lt;br /&gt;
    valori = citeste_valori(n)&lt;br /&gt;
    mini1, mini2, mini3 = numere_minime(valori)&lt;br /&gt;
    print(&amp;quot;Cele mai mari numere sunt:&amp;quot;,mini3,mini2,mini1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod definește patru funcții în Python care au ca scop citirea unui număr de valori și găsirea celor mai mici trei numere dintre acestea.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_n() citește numărul de valori n și verifică dacă acesta se află în intervalul specificat (de la 3 la 100). Dacă numărul introdus nu respectă aceste restricții, se afișează un mesaj de eroare și se cere reîncercarea introducerii valorii.&lt;br /&gt;
&lt;br /&gt;
 Funcția nrcifre(nr) primește un număr nr și returnează numărul de cifre ale sale.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori(n) citește n valori și le verifică dacă au maxim 4 cifre. Dacă valorile nu respectă această condiție, se afișează un mesaj de eroare și se cere reîncercarea introducerii valorii.&lt;br /&gt;
&lt;br /&gt;
 Funcția numere_minime(valori) primește o listă valori de numere și returnează cele mai mici trei numere dintre acestea.&lt;br /&gt;
&lt;br /&gt;
 În funcția _main_(), se apelează cele patru funcții și se afișează cele mai mici trei numere între valorile introduse.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2781_-_Wildfire&amp;diff=1970</id>
		<title>2781 - Wildfire</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2781_-_Wildfire&amp;diff=1970"/>
		<updated>2023-03-30T14:08:14Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/2781/wildfire]&lt;br /&gt;
== Enunț ==&lt;br /&gt;
Se consideră o pădure ce conține &#039;&#039;&#039;n•m&#039;&#039;&#039; copaci aranjați pe &#039;&#039;&#039;n&#039;&#039;&#039; linii și &#039;&#039;&#039;m&#039;&#039;&#039; coloane în care s-a produs un incendiu. Pădurarii cunosc coordonatele &#039;&#039;&#039;x&#039;&#039;&#039; și &#039;&#039;&#039;y&#039;&#039;&#039; ale copacului de la care a izbucnit focul și modalitatea prin care acesta se extinde. Astfel, dacă un copac se aprinde într-o anumită zi, în ziua următoare se vor aprind copacii vecini cu acesta pe linie sau coloană care nu sunt încă afectați de incendiu.&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Știind &#039;&#039;&#039;x&#039;&#039;&#039; și &#039;&#039;&#039;y&#039;&#039;&#039;, coordonatele inițiale ale focului și &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;, dimensiunile pădurii, ajutați pădurarii să determine numărul minim de zile după care întreaga pădure va fi afectată.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;x y n m&#039;&#039;&#039;, cu semnificația de mai sus.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;.Programul va afișa pe ecran numărul &#039;&#039;&#039;Z&#039;&#039;&#039;, reprezentând numărul de zile după care va fi afectată întreaga pădure. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ x ≤ n ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 ≤ y ≤ m ≤ 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
În funcție de numărul de zile, fiecare zonă va fi distrusă în numărul de zile corespunzător figurii de mai jos:&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2 2 4 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 6&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2 2 0 6&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
=== Exemplu 3 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 2 -2 0 5&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
== Explicație ==&lt;br /&gt;
În funcție de numărul de zile, fiecare zonă va fi distrusă în numărul de zile corespunzător figurii de mai jos:&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 3 3 9 9&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 13&lt;br /&gt;
== Explicație ==&lt;br /&gt;
În funcție de numărul de zile, fiecare zonă va fi distrusă în numărul de zile corespunzător figurii de mai jos:&lt;br /&gt;
: 5 4 3 4 5 6 7 8 9&lt;br /&gt;
: 4 3 2 3 4 5 6 7 8&lt;br /&gt;
: 3 2 1 2 3 4 5 6 7&lt;br /&gt;
: 4 3 2 3 4 5 6 7 8&lt;br /&gt;
: 5 4 3 4 5 6 7 8 9&lt;br /&gt;
: 6 5 4 5 6 7 8 9 10&lt;br /&gt;
: 7 6 5 6 7 8 9 10 11&lt;br /&gt;
: 8 7 6 7 8 9 10 11 12&lt;br /&gt;
: 9 8 7 8 9 10 11 12 13&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citeste_valori():&lt;br /&gt;
    valori = []&lt;br /&gt;
    for i in range(4):&lt;br /&gt;
        while True:&lt;br /&gt;
            try:&lt;br /&gt;
                valoare = int(input(&amp;quot;Introduceti o valoare: &amp;quot;))&lt;br /&gt;
                if valoare &amp;gt;= 1 and valoare &amp;lt;= 1000000000:&lt;br /&gt;
                    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                    valori.append(valoare)&lt;br /&gt;
                    break&lt;br /&gt;
                else:&lt;br /&gt;
                    print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                print(&amp;quot;Trebuie introduse doar valori naturale cu mai putin de 10 cifre.&amp;quot;)&lt;br /&gt;
    return valori&lt;br /&gt;
&lt;br /&gt;
def numar_zile(valori):&lt;br /&gt;
    x, y, n, m = valori&lt;br /&gt;
    lc1 = x + y - 2&lt;br /&gt;
    lc2 = x - 1 + m - y&lt;br /&gt;
    lc3 = y - 1 + n - x&lt;br /&gt;
    lc4 = m - y + n - x&lt;br /&gt;
    return max(lc1, lc2, lc3, lc4) + 1&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    valori = citeste_valori()&lt;br /&gt;
    Z = numar_zile(valori)&lt;br /&gt;
    print(&amp;quot;Numărul de zile după care va fi afectată întreaga pădure este:&amp;quot;, Z)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 citeste_valori(): Această funcție citește de la tastatură patru valori întregi și le validează astfel încât să se încadreze în anumite restricții. Dacă valorile nu se încadrează în aceste restricții, utilizatorul este notificat și trebuie să introducă din nou valorile până când acestea sunt corecte. Funcția returnează lista valorilor corecte.&lt;br /&gt;
&lt;br /&gt;
 numar_zile(): Această funcție primește o listă de patru valori întregi și calculează numărul de zile după care va fi afectată întreaga pădure. Acest calcul este realizat folosind patru formule matematice, care iau în considerare poziția arborelui inițial (x, y) și a celui final (n, m). Funcția returnează numărul de zile calculat.&lt;br /&gt;
&lt;br /&gt;
 La final, programul apelează cele două funcții și afișează numărul de zile obținut.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0119_-_2_Maxim&amp;diff=1969</id>
		<title>0119 - 2 Maxim</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0119_-_2_Maxim&amp;diff=1969"/>
		<updated>2023-03-30T13:53:04Z</updated>

		<summary type="html">&lt;p&gt;Andor Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/119/2maxim]&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Să se scrie un program care citește un șir de &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale şi determină cele mai mari două numere din şir.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale nenule.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;.Programul afișează pe ecran numerele &#039;&#039;&#039;x y&#039;&#039;&#039;, reprezentând valorile cerute, separate prin exact un spaţiu.În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &#039;&#039;&#039;2 ≤ n ≤ 1000&#039;&#039;&#039;&lt;br /&gt;
* cele n numere citite vor fi mai mici decât &#039;&#039;&#039;2.000.000.000&#039;&#039;&#039;&lt;br /&gt;
* valorile afişate respectă relaţia &#039;&#039;&#039;x ≥ y&#039;&#039;&#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 5&lt;br /&gt;
: 72 30 12 15 17&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 75 72&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1&lt;br /&gt;
: 7 10 2 15 17&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
=== Exemplu 3 ===&lt;br /&gt;
; Intrare&lt;br /&gt;
: a&lt;br /&gt;
: b f c d g&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele nu sunt comform restricțiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citeste_n():&lt;br /&gt;
    while True:&lt;br /&gt;
        try:&lt;br /&gt;
            n = int(input(&amp;quot;Introduceti numarul de valori: &amp;quot;))&lt;br /&gt;
            if n &amp;gt;= 2 and n &amp;lt;= 1000:&lt;br /&gt;
                print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                return n&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        except ValueError:&lt;br /&gt;
            print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citeste_valori(n):&lt;br /&gt;
    valori = []&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        while True:&lt;br /&gt;
            try:&lt;br /&gt;
                valoare = int(input(&amp;quot;Introduceti o valoare: &amp;quot;))&lt;br /&gt;
                if valoare &amp;lt;= 2000000000:&lt;br /&gt;
                    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                    valori.append(valoare)&lt;br /&gt;
                    break&lt;br /&gt;
                else:&lt;br /&gt;
                    print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                print(&amp;quot;Trebuie introduse doar valori naturale cu mai putin de 10 cifre.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    return valori&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def numere_maxime(valori):&lt;br /&gt;
    # Sortarea valorilor in ordine descrescatoare&lt;br /&gt;
    valori.sort(reverse=True)&lt;br /&gt;
    # Returnarea celor doua valori maxime&lt;br /&gt;
    return valori[0], valori[1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    n = citeste_n()&lt;br /&gt;
    valori = citeste_valori(n)&lt;br /&gt;
    x, y = numere_maxime(valori)&lt;br /&gt;
    print(&amp;quot;Cele mai mari numere sunt:&amp;quot;, x, &amp;quot;și&amp;quot;, y)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod constă dintr-o funcție pentru a citi un număr de valori, o funcție pentru a citi acele valori, o funcție pentru a sorta valorile în ordine descrescătoare, și o funcție pentru a găsi cele două numere maxime.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_n() citește un număr întreg de la tastatură și îl verifică să fie între 2 și 1000. Dacă numărul este corect, acesta este returnat, altfel se afișează un mesaj de eroare și se începe din nou citirea.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori(n) citește n valori întregi de la tastatură și le stochează într-o listă. Fiecare valoare este verificată să fie mai mică sau egală cu 2000000000. Dacă valoarea este corectă, aceasta este adăugată la lista de valori. Dacă nu, se afișează un mesaj de eroare și se cere o nouă valoare.&lt;br /&gt;
&lt;br /&gt;
 Funcția sortare(n, v) sortează lista v de valori în ordine descrescătoare utilizând algoritmul de sortare a bulelor. Lista sortată este returnată.&lt;br /&gt;
&lt;br /&gt;
 Funcția numere_maxime(valori) primește lista de valori și găsește cele două valori maxime utilizând funcția sortare(n, v) pentru a sorta lista în ordine descrescătoare. După sortare, primele două valori din lista sortată sunt returnate.&lt;br /&gt;
 &lt;br /&gt;
 În funcția principală (_main_), se citesc numărul de valori și valorile într-o listă folosind funcțiile citeste_n() și citeste_valori(n). Apoi, cele două numere maxime sunt găsite utilizând funcția numere_maxime(valori) și sunt afișate pe ecran.&lt;/div&gt;</summary>
		<author><name>Andor Giulia</name></author>
	</entry>
</feed>