<?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=2943_-_Maru</id>
	<title>2943 - Maru - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2943_-_Maru"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2943_-_Maru&amp;action=history"/>
	<updated>2026-05-01T23:24:51Z</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=2943_-_Maru&amp;diff=8151&amp;oldid=prev</id>
		<title>Ramona Dragoș: Pagină nouă: == Enunt == Se dă o matrice pătratică de n x n numere naturale și o valoare naturală T. Suma unei submatrice este suma elementelor submatricei. == Cerința == Să se determine numărul submatricelor care au suma mai mică sau egală cu T. == Date de intrare == Programul citește de la tastatură, în această ordine, numerele T n A B C D. Elementele matricei se vor genera după formula: a[i,j] = (A * i + B * j + C) % D. == Date de ieșire == Programul va afișa pe ecran...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2943_-_Maru&amp;diff=8151&amp;oldid=prev"/>
		<updated>2023-12-15T17:31:26Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Enunt == Se dă o matrice pătratică de n x n numere naturale și o valoare naturală T. Suma unei submatrice este suma elementelor submatricei. == Cerința == Să se determine numărul submatricelor care au suma mai mică sau egală cu T. == Date de intrare == Programul citește de la tastatură, în această ordine, numerele T n A B C D. Elementele matricei se vor genera după formula: a[i,j] = (A * i + B * j + C) % D. == Date de ieșire == Programul va afișa pe ecran...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Enunt ==&lt;br /&gt;
Se dă o matrice pătratică de n x n numere naturale și o valoare naturală T. Suma unei submatrice este suma elementelor submatricei.&lt;br /&gt;
== Cerința ==&lt;br /&gt;
Să se determine numărul submatricelor care au suma mai mică sau egală cu T.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură, în această ordine, numerele T n A B C D. Elementele matricei se vor genera după formula: a[i,j] = (A * i + B * j + C) % D.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran numărul S, reprezentând numărul submatricelor de sumă mai mică sau egală cu T.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*1 &amp;amp;les; n, A, B, C, D &amp;amp;les; 400&lt;br /&gt;
*1 &amp;amp;les; T &amp;amp;les; 30.000&lt;br /&gt;
*O submatrice poate fi formată dintr-un singur element (este o submatrice cu o linie și o coloană).&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
:10 2 1 1 1 43&lt;br /&gt;
;Ieșire&lt;br /&gt;
:9&lt;br /&gt;
;Explicație&lt;br /&gt;
*Matricea generată este:&lt;br /&gt;
:3 4&lt;br /&gt;
:4 5&lt;br /&gt;
*Singura submatrice care nu are suma mai mică sau egală cu T este doar matricea întreagă.&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 0 0 0 0 0 0&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Nu au fost respectate cerintele impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#2943 - Maru&lt;br /&gt;
def is_valid_input(n, T, A, B, C, D):&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 400 and 1 &amp;lt;= A &amp;lt;= 400 and 1 &amp;lt;= B &amp;lt;= 400 and 1 &amp;lt;= C &amp;lt;= 400 and 1 &amp;lt;= D &amp;lt;= 400):&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    if not (1 &amp;lt;= T &amp;lt;= 30000):&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def generate_matrix(n, A, B, C, D):&lt;br /&gt;
    matrix = [[(A * i + B * j + C) % D for j in range(n)] for i in range(n)]&lt;br /&gt;
    return matrix&lt;br /&gt;
&lt;br /&gt;
def count_submatrices(matrix, T):&lt;br /&gt;
    n = len(matrix)&lt;br /&gt;
    count = 0&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(n):&lt;br /&gt;
            for k in range(i, n):&lt;br /&gt;
                for l in range(j, n):&lt;br /&gt;
                    submatrix_sum = sum(matrix[x][y] for x in range(i, k + 1) for y in range(j, l + 1))&lt;br /&gt;
                    if submatrix_sum &amp;lt;= T:&lt;br /&gt;
                        count += 1&lt;br /&gt;
&lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        T, n, A, B, C, D = map(int, input(&amp;quot;Introduceti T n A B C D: &amp;quot;).split())&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Nu au fost respectate cerintele impuse.&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    if not is_valid_input(n, T, A, B, C, D):&lt;br /&gt;
        print(&amp;quot;Nu au fost respectate cerintele impuse.&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    matrix = generate_matrix(n, A, B, C, D)&lt;br /&gt;
    result = count_submatrices(matrix, T)&lt;br /&gt;
&lt;br /&gt;
    print(result)&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>Ramona Dragoș</name></author>
	</entry>
</feed>