<?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=3290_-_Mat_D3</id>
	<title>3290 - Mat D3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3290_-_Mat_D3"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3290_-_Mat_D3&amp;action=history"/>
	<updated>2026-05-01T07:39:36Z</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=3290_-_Mat_D3&amp;diff=8227&amp;oldid=prev</id>
		<title>Vasiliu Costel Andrei: Pagină nouă: == Enunț == Fie o matrice cu L linii și C coloane care memorează numere naturale. O submatrice a sa având colțul stânga-sus (xs, ys) și colțul dreapta-jos (xd, yd) este formată din toate elementele din matrice având indicele liniei în intervalul [xs, xd] și indicele coloanei în intervalul [ys, yd]. O submatrice poate fi formată dintr-un singur element.  == Cerința == Scrieți un program care determină numărul submatricelor care au suma elementelor divizibilă...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3290_-_Mat_D3&amp;diff=8227&amp;oldid=prev"/>
		<updated>2023-12-17T19:09:09Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Enunț == Fie o matrice cu L linii și C coloane care memorează numere naturale. O submatrice a sa având colțul stânga-sus (xs, ys) și colțul dreapta-jos (xd, yd) este formată din toate elementele din matrice având indicele liniei în intervalul [xs, xd] și indicele coloanei în intervalul [ys, yd]. O submatrice poate fi formată dintr-un singur element.  == Cerința == Scrieți un program care determină numărul submatricelor care au suma elementelor divizibilă...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Enunț ==&lt;br /&gt;
Fie o matrice cu L linii și C coloane care memorează numere naturale. O submatrice a sa având colțul stânga-sus (xs, ys) și colțul dreapta-jos (xd, yd) este formată din toate elementele din matrice având indicele liniei în intervalul [xs, xd] și indicele coloanei în intervalul [ys, yd]. O submatrice poate fi formată dintr-un singur element.&lt;br /&gt;
&lt;br /&gt;
== Cerința ==&lt;br /&gt;
Scrieți un program care determină numărul submatricelor care au suma elementelor divizibilă cu 3.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare matd3in.txt conține pe prima linie numerele naturale L și C separate prin spațiu. Pe următoarele L linii se află câte C numere naturale separate prin câte un spațiu reprezentând câte o linie din matrice.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire matd3out.txt va conține pe prima linie un singur număr natural K, reprezentând numărul submatricelor care au suma divizibilă cu 3.&lt;br /&gt;
&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 2 &amp;amp;les; &amp;#039;&amp;#039;&amp;#039;L, C&amp;#039;&amp;#039;&amp;#039; &amp;amp;les; 300&lt;br /&gt;
* elementele matricei sunt numere naturale cuprinse între 0 și 10.000&lt;br /&gt;
* numărul 0 este divizibil cu 3&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
; matd3in.txt&lt;br /&gt;
: 2 3&lt;br /&gt;
: 1 2 2&lt;br /&gt;
: 2 1 3&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund restricțiilor impuse&lt;br /&gt;
; matd3out.txt&lt;br /&gt;
: 7&lt;br /&gt;
&lt;br /&gt;
=== Explicație ===&lt;br /&gt;
Cele șapte submatrice sunt:&lt;br /&gt;
&lt;br /&gt;
(1 2) &amp;lt;br&amp;gt;&lt;br /&gt;
(2 1) &amp;lt;br&amp;gt;&lt;br /&gt;
(2 1 3)&amp;lt;br&amp;gt;&lt;br /&gt;
(3)&amp;lt;br&amp;gt;&lt;br /&gt;
(1&amp;lt;br&amp;gt;2) &amp;lt;br&amp;gt;&lt;br /&gt;
(2&amp;lt;br&amp;gt;1)&amp;lt;br&amp;gt;&lt;br /&gt;
(1 2&amp;lt;br&amp;gt;2 1)&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
; matd3in.txt&lt;br /&gt;
: 1 3&lt;br /&gt;
: 1 2 2&lt;br /&gt;
: 2 1 3&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;
#3290 - Matd3&lt;br /&gt;
&lt;br /&gt;
def validare_date(linii, coloane, matrice):&lt;br /&gt;
    if not (2 &amp;lt;= linii &amp;lt;= 300 and 2 &amp;lt;= coloane &amp;lt;= 300):&lt;br /&gt;
        return False&lt;br /&gt;
    for randuri in matrice:&lt;br /&gt;
        if len(randuri) != coloane or any(not (0 &amp;lt;= numere &amp;lt;= 10000) for numere in randuri):&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def numarare_submatrici(linii, coloane, matrice):&lt;br /&gt;
    count = 0&lt;br /&gt;
    for xs in range(linii):&lt;br /&gt;
        for ys in range(coloane):&lt;br /&gt;
            for xd in range(xs, linii):&lt;br /&gt;
                for yd in range(ys, coloane):&lt;br /&gt;
                    submatrice_sum = sum(matrice[i][j] for i in range(xs, xd + 1) for j in range(ys, yd + 1))&lt;br /&gt;
                    if submatrice_sum % 3 == 0:&lt;br /&gt;
                        count += 1&lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    with open(&amp;quot;matd3in.txt&amp;quot;, &amp;quot;r&amp;quot;) as file:&lt;br /&gt;
        linii, coloane = map(int, file.readline().split())&lt;br /&gt;
        matrice = [list(map(int, line.split())) for line in file]&lt;br /&gt;
&lt;br /&gt;
    if validare_date(linii, coloane, matrice):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse&amp;quot;)&lt;br /&gt;
        result = numarare_submatrici(linii, coloane, matrice)&lt;br /&gt;
        with open(&amp;quot;matd3out.txt&amp;quot;, &amp;quot;w&amp;quot;) as file_out:&lt;br /&gt;
            file_out.write(str(result))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare NU corespund restricțiilor impuse&amp;quot;)&lt;br /&gt;
        exit(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vasiliu Costel Andrei</name></author>
	</entry>
</feed>