<?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=3698_-_Bemo</id>
	<title>3698 - Bemo - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3698_-_Bemo"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3698_-_Bemo&amp;action=history"/>
	<updated>2026-05-01T07:26:26Z</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=3698_-_Bemo&amp;diff=9786&amp;oldid=prev</id>
		<title>Oros Ioana Diana at 10:19, 18 May 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3698_-_Bemo&amp;diff=9786&amp;oldid=prev"/>
		<updated>2024-05-18T10:19:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=3698_-_Bemo&amp;amp;diff=9786&amp;amp;oldid=9280&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Oros Ioana Diana</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3698_-_Bemo&amp;diff=9280&amp;oldid=prev</id>
		<title>Oros Ioana Diana: Pagină nouă: Se dă o matrice cu R linii şi C coloane de numere distincte de la 1 la R * C. Bemo, personajul emoţional, doreşte să urmărească cel mai bun drum din colţul superior stânga, de coordonate (1, 1), în colţul inferior dreapta, de coordonate (R, C). Un drum este o secvenţă de numere din matrice în care fiecare număr se găseşte în jos sau la dreapta numărului anterior, adică dacă (i, j) este poziţia unui număr de pe un drum, atunci următorul număr poate fi...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3698_-_Bemo&amp;diff=9280&amp;oldid=prev"/>
		<updated>2024-01-08T22:37:04Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Se dă o matrice cu R linii şi C coloane de numere distincte de la 1 la R * C. Bemo, personajul emoţional, doreşte să urmărească cel mai bun drum din colţul superior stânga, de coordonate (1, 1), în colţul inferior dreapta, de coordonate (R, C). Un drum este o secvenţă de numere din matrice în care fiecare număr se găseşte în jos sau la dreapta numărului anterior, adică dacă (i, j) este poziţia unui număr de pe un drum, atunci următorul număr poate fi...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Se dă o matrice cu R linii şi C coloane de numere distincte de la 1 la R * C. Bemo, personajul emoţional, doreşte să urmărească cel mai bun drum din colţul superior stânga, de coordonate (1, 1), în colţul inferior dreapta, de coordonate (R, C). Un drum este o secvenţă de numere din matrice în care fiecare număr se găseşte în jos sau la dreapta numărului anterior, adică dacă (i, j) este poziţia unui număr de pe un drum, atunci următorul număr poate fi cel de pe poziţia (i + 1, j) sau cel de pe poziţia (i, j + 1). Pentru a determina dacă un drum A este mai bun decât un drum B, numerele fiecărui drum se vor sorta şi se va alege cel mai mic lexicografic, de exemplu [1,3,5,6,8] &amp;lt; [1,4,5,6,7].&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare bemoin.txt conține pe prima linie două numere naturale R și C, unde R este numărul liniilor, iar C numărul coloanelor matricei lui Bemo. Pe următoarele R linii se vor găsi câte C numere separate printr-un spaţiu. Fiecare număr va fi unic şi va fi cuprins în intervalul [1, R*C].&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Fișierul de ieșire bemoout.txt va conține R+C-1 numere reprezentând cel mai bun drum pe care Bemo îl poate alege. Numerele vor fi scrise separate printr-un spațiu.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;0 &amp;lt; R, C &amp;lt; 1501&amp;#039;&amp;#039;&amp;#039;;&lt;br /&gt;
*Pentru 40% din teste: 0 &amp;lt; R, C &amp;lt; 751;&lt;br /&gt;
*Pentru 70% din teste: 0 &amp;lt; R, C &amp;lt; 1301;&lt;br /&gt;
*Spunem că un drum A = (a1, a2, …, aR+C-1) este mai mic lexicografic decât un drum B = (b1, b2,…, bR+C-1) dacă există o poziție p astfel încât ap &amp;lt; bp și a1 = b1, a2 = b2, …, ap-1 = bp-1.&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; bemoin.txt&lt;br /&gt;
: 4 4&lt;br /&gt;
: 7 4 13 3&lt;br /&gt;
: 8 11 12 2&lt;br /&gt;
: 10 9 1 5&lt;br /&gt;
: 16 14 15 6&lt;br /&gt;
; bemoout.txt&lt;br /&gt;
: 7 4 11 9 1 5 6&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; bemoin.txt&lt;br /&gt;
: 3 3&lt;br /&gt;
: 5 1 4&lt;br /&gt;
: 8 7 6&lt;br /&gt;
: 9 2 3&lt;br /&gt;
; bemoout.txt&lt;br /&gt;
: 5 1 4 7 6 3&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;
#3698 - Bemo&lt;br /&gt;
def find_best_path(R, C, matrix):&lt;br /&gt;
    if not (0 &amp;lt; R &amp;lt; 1501 and 0 &amp;lt; C &amp;lt; 1501):&lt;br /&gt;
        return &amp;quot;Fals&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    path = []&lt;br /&gt;
&lt;br /&gt;
    i, j = 0, 0&lt;br /&gt;
&lt;br /&gt;
    while i &amp;lt; R and j &amp;lt; C:&lt;br /&gt;
        path.append(matrix[i][j])&lt;br /&gt;
&lt;br /&gt;
        if i &amp;lt; R - 1 and (j == C - 1 or matrix[i + 1][j] &amp;lt; matrix[i][j + 1]):&lt;br /&gt;
            i += 1&lt;br /&gt;
        else:&lt;br /&gt;
            j += 1&lt;br /&gt;
&lt;br /&gt;
    return path&lt;br /&gt;
&lt;br /&gt;
# Citim datele de intrare din fișierul &amp;quot;bemoin.txt&amp;quot;&lt;br /&gt;
with open(&amp;quot;bemoin.txt&amp;quot;, &amp;quot;r&amp;quot;) as file:&lt;br /&gt;
    R, C = map(int, file.readline().split())&lt;br /&gt;
    matrix = [list(map(int, file.readline().split())) for _ in range(R)]&lt;br /&gt;
&lt;br /&gt;
# Găsim cel mai bun drum&lt;br /&gt;
result = find_best_path(R, C, matrix)&lt;br /&gt;
&lt;br /&gt;
# Scriem rezultatul în fișierul &amp;quot;bemoout.txt&amp;quot; sau afișăm &amp;quot;Fals&amp;quot; în cazul în care restricțiile nu sunt respectate&lt;br /&gt;
with open(&amp;quot;bemoout.txt&amp;quot;, &amp;quot;w&amp;quot;) as file:&lt;br /&gt;
    if isinstance(result, list):&lt;br /&gt;
        file.write(&amp;quot; &amp;quot;.join(map(str, result)))&lt;br /&gt;
    else:&lt;br /&gt;
        file.write(result)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Oros Ioana Diana</name></author>
	</entry>
</feed>