<?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=2451_-_Mexitate</id>
	<title>2451 - Mexitate - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2451_-_Mexitate"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2451_-_Mexitate&amp;action=history"/>
	<updated>2026-06-17T00:09:22Z</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=2451_-_Mexitate&amp;diff=8228&amp;oldid=prev</id>
		<title>Vasiliu Costel Andrei: Pagină nouă: == Enunț == Se dă o matrice A cu N linii și M coloane cu elemente numere naturale nu neapărat distincte. Pentru o submatrice definim mex-ul acesteia ca fiind cea mai mică valoare naturală nenulă care nu apare în aceasta.  == Cerința == Să se calculeze produsul mex-urilor tuturor submatricelor având K linii și L coloane ale matricei A.  == Date de intrare == Fișierul de intrare mexitatein.txt conține pe prima linie patru numere naturale N, M, K şi L separate pri...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2451_-_Mexitate&amp;diff=8228&amp;oldid=prev"/>
		<updated>2023-12-17T19:33:54Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Enunț == Se dă o matrice A cu N linii și M coloane cu elemente numere naturale nu neapărat distincte. Pentru o submatrice definim mex-ul acesteia ca fiind cea mai mică valoare naturală nenulă care nu apare în aceasta.  == Cerința == Să se calculeze produsul mex-urilor tuturor submatricelor având K linii și L coloane ale matricei A.  == Date de intrare == Fișierul de intrare mexitatein.txt conține pe prima linie patru numere naturale N, M, K şi L separate pri...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Enunț ==&lt;br /&gt;
Se dă o matrice A cu N linii și M coloane cu elemente numere naturale nu neapărat distincte. Pentru o submatrice definim mex-ul acesteia ca fiind cea mai mică valoare naturală nenulă care nu apare în aceasta.&lt;br /&gt;
&lt;br /&gt;
== Cerința ==&lt;br /&gt;
Să se calculeze produsul mex-urilor tuturor submatricelor având K linii și L coloane ale matricei A.&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare mexitatein.txt conține pe prima linie patru numere naturale N, M, K şi L separate printr-un spaţiu cu semnificația din enunț. Pe fiecare dintre următoarele N linii se află câte M numere naturale nenule, despărțite prin câte un spațiu, reprezentând valorile matricei.&lt;br /&gt;
&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire mexitateout.txt va conține un singur număr natural reprezentând produsul mex-urilor tuturor submatricelor având K linii și L coloane ale matricei modulo 1 000 000 007.&lt;br /&gt;
&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 &amp;amp;les; &amp;#039;&amp;#039;&amp;#039;N * M&amp;#039;&amp;#039;&amp;#039; &amp;amp;les; 400.000&lt;br /&gt;
* 1 &amp;amp;les; &amp;#039;&amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039; &amp;amp;les; N&lt;br /&gt;
* 1 &amp;amp;les; &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039; &amp;amp;les; M&lt;br /&gt;
* 1 &amp;amp;les; &amp;#039;&amp;#039;&amp;#039;A[i][j]&amp;#039;&amp;#039;&amp;#039; &amp;amp;les; N * M, 1 &amp;amp;les; &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039; &amp;amp;les; N, 1 &amp;amp;les; &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039; &amp;amp;les; M&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
; mexitatein.txt&lt;br /&gt;
: 3 4 2 3&lt;br /&gt;
: 1 2 3 2&lt;br /&gt;
: 2 3 1 4&lt;br /&gt;
: 1 1 2 6&lt;br /&gt;
; Ieșire&lt;br /&gt;
: Datele de intrare corespund restricțiilor impuse&lt;br /&gt;
; mexitateout.txt&lt;br /&gt;
: 400&lt;br /&gt;
&lt;br /&gt;
=== Explicație ===&lt;br /&gt;
N = 3, M = 4, K = 2 și L = 3&amp;lt;br&amp;gt;&lt;br /&gt;
Submatricile cu două linii și trei coloane sunt:&amp;lt;br&amp;gt;&lt;br /&gt;
1 2 3 cu mex-ul 4&amp;lt;br&amp;gt;&lt;br /&gt;
2 3 1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2 3 2 cu mex-ul 5&amp;lt;br&amp;gt;&lt;br /&gt;
3 1 4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2 3 1 cu mex-ul 4&amp;lt;br&amp;gt;&lt;br /&gt;
1 1 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
3 1 4 cu mex-ul 5&amp;lt;br&amp;gt;&lt;br /&gt;
1 2 6&lt;br /&gt;
&lt;br /&gt;
Produsul tuturor mex-urilor este: 4 * 5 * 4 * 5 = 400&amp;lt;br&amp;gt;&lt;br /&gt;
400 % 1 000 000 007 = 400&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
; mexitatein.txt&lt;br /&gt;
: 3 4 4 3&lt;br /&gt;
: 1 2 3 2&lt;br /&gt;
: 2 3 1 4&lt;br /&gt;
: 1 1 2 6&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;
#2451 - Mexitate&lt;br /&gt;
&lt;br /&gt;
MOD = 1000000007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def validare_date(n, m, nr_linii, nr_coloane, matrice):&lt;br /&gt;
    if not (1 &amp;lt;= n * m &amp;lt;= 400000 and 1 &amp;lt;= nr_linii &amp;lt;= n and 1 &amp;lt;= nr_coloane &amp;lt;= m):&lt;br /&gt;
        return False&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(m):&lt;br /&gt;
            if not (1 &amp;lt;= matrice[i][j] &amp;lt;= n * m):&lt;br /&gt;
                return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def mex(n, m, nr_linii, nr_coloane, matrice):&lt;br /&gt;
    result = 1&lt;br /&gt;
    for i in range(n - nr_linii + 1):&lt;br /&gt;
        for j in range(m - nr_coloane + 1):&lt;br /&gt;
            submatrice = [linie[j:j+nr_coloane] for linie in matrice[i:i+nr_linii]]&lt;br /&gt;
            valori = set()&lt;br /&gt;
            for linie in submatrice:&lt;br /&gt;
                valori.update(linie)&lt;br /&gt;
            mex = 1&lt;br /&gt;
            while mex in valori:&lt;br /&gt;
                mex += 1&lt;br /&gt;
            result = (result * mex) % MOD&lt;br /&gt;
    return result&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    with open(&amp;quot;mexitatein.txt&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        n, m, nr_linii, nr_coloane = map(int, fin.readline().split())&lt;br /&gt;
        matrice = [list(map(int, fin.readline().split())) for _ in range(n)]&lt;br /&gt;
&lt;br /&gt;
    if validare_date(n, m, nr_linii, nr_coloane, matrice):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restricțiilor impuse&amp;quot;)&lt;br /&gt;
        result = mex(n, m, nr_linii, nr_coloane, matrice)&lt;br /&gt;
        with open(&amp;quot;mexitateout.txt&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
            fout.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>