Matrius de Monge P16242


Statement
 

pdf   zip   main.cc

Una matriu n×mn \times m es diu que és una matriu de Monge (en honor al matemàtic francès Gaspard Monge) si, per a tots els i,j,k,i, j, k, \ell tals que 0i<k<n0 \le i < k < n i 0j<<m0 \le j < \ell < m, es compleix A[i][j]+A[k][]A[i][]+A[k][j].A[i][j] + A[k][\ell] \le A[i][\ell] + A[k][j].

Per exemple, aquesta matriu és de Monge: (10171328231722162923242822342411136177)\begin{pmatrix} 10 & 17 & 13 & 28 & 23 \\ 17 & 22 & 16 & 29 & 23 \\ 24 & 28 & 22 & 34 & 24 \\ 11 & 13 & 6 & 17 & 7 \\ \end{pmatrix} Si prenem la intersecció de les files 1 i 3 amb les columnes 0 i 4, els quatre elements són: (1723117)\begin{pmatrix} 17 & 23 \\ 11 & 7 \\ \end{pmatrix} Fixem-nos que 17+711+2317 + 7 \le 11 + 23. Aquesta propietat es compleix a tot arreu de la matriu.

Feu una funció

bool es_Monge(const vector<vector<int>>& M);

tal que, donada una matriu MM de mides n×mn \times m, amb n2n \ge 2 i m2m \ge 2, retorni cert si i només si MM és de Monge.

Observació

Només cal enviar el procediment demanat; el programa principal serà ignorat.

Observació

El jutge acceptarà solucions amb cost Θ(n2m2)\Theta(n^2 \cdot m^2), però no són eficients i això es penalitzarà a la correcció manual.

Information
Author
Maria Blesa
Language
Catalan
Official solutions
C++
User solutions
C++