<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0669_-_Lin_Col</id>
	<title>0669 - Lin Col - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0669_-_Lin_Col"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0669_-_Lin_Col&amp;action=history"/>
	<updated>2026-05-01T04:45:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0669_-_Lin_Col&amp;diff=4014&amp;oldid=prev</id>
		<title>Andor Giulia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/669/lincol] == Cerinţa == 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. == Date de intrare == 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 l...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0669_-_Lin_Col&amp;diff=4014&amp;oldid=prev"/>
		<updated>2023-04-22T12:24:04Z</updated>

		<summary type="html">&lt;p&gt;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;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&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 &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.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
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 linie conține numărul de întrebări, &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;, iar fiecare dintre următoarele &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039; linii conține câte o întrebare, de forma &amp;#039;&amp;#039;&amp;#039;Q I&amp;#039;&amp;#039;&amp;#039;, unde &amp;#039;&amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;#039; poate fi unul dintre caracterele &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039; sau &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;, iar &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039; este un număr natural. Dacă &amp;#039;&amp;#039;&amp;#039;Q = L&amp;#039;&amp;#039;&amp;#039;, se cere determinarea sumei elementelor de pe linia &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;, iar dacă &amp;#039;&amp;#039;&amp;#039;Q = C&amp;#039;&amp;#039;&amp;#039; se cere determinarea sumei elementelor de pe coloana &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#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 &amp;#039;&amp;#039;&amp;#039;lincol.out&amp;#039;&amp;#039;&amp;#039;va conține &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#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;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ n , m ≤ 100&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* elementele matricei sunt numere naturale mai mici decât &amp;#039;&amp;#039;&amp;#039;1.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ p ≤ 100&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* liniile sunt numerotate de la &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; la &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar coloanele de la &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; la &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &amp;#039;&amp;#039;&amp;#039;lincol.in&amp;#039;&amp;#039;&amp;#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;
; &amp;#039;&amp;#039;&amp;#039;lincol.out&amp;#039;&amp;#039;&amp;#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 = {&amp;#039;tip&amp;#039;: linie[0], &amp;#039;index&amp;#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[&amp;#039;tip&amp;#039;] == &amp;#039;C&amp;#039;:&lt;br /&gt;
                for i in range(n):&lt;br /&gt;
                    s += matrice[i][intrebare[&amp;#039;index&amp;#039;] - 1]&lt;br /&gt;
            elif intrebare[&amp;#039;tip&amp;#039;] == &amp;#039;L&amp;#039;:&lt;br /&gt;
                for j in range(m):&lt;br /&gt;
                    s += matrice[intrebare[&amp;#039;index&amp;#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>
</feed>