<?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=3091_-_Pavele</id>
	<title>3091 - Pavele - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3091_-_Pavele"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3091_-_Pavele&amp;action=history"/>
	<updated>2026-05-02T02:48:59Z</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=3091_-_Pavele&amp;diff=10057&amp;oldid=prev</id>
		<title>RebecaBud: Pagină nouă:  == Cerinţa == Avem o suprafață dreptunghiulară pătratică de dimensiune  n x n (n – impar). Colțul de dimensiune 1 x 1 din stânga-sus lipsește. Se dorește pavarea a cât mai mult din suprafața sa cu dale de dimensiune 1 x 2 (sau 2 x 1). Trebuie folosite cât mai multe dale și în plus, numărul de dale orizontale folosite trebuie să fie egal cu numărul de dale verticale folosite pentru pavare. == Date de intrare == Fișierul de intrare pavele.in conține pe pr...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3091_-_Pavele&amp;diff=10057&amp;oldid=prev"/>
		<updated>2024-06-03T17:48:09Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă:  == Cerinţa == Avem o suprafață dreptunghiulară pătratică de dimensiune  n x n (n – impar). Colțul de dimensiune 1 x 1 din stânga-sus lipsește. Se dorește pavarea a cât mai mult din suprafața sa cu dale de dimensiune 1 x 2 (sau 2 x 1). Trebuie folosite cât mai multe dale și în plus, numărul de dale orizontale folosite trebuie să fie egal cu numărul de dale verticale folosite pentru pavare. == Date de intrare == Fișierul de intrare pavele.in conține pe pr...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Avem o suprafață dreptunghiulară pătratică de dimensiune  n x n (n – impar). Colțul de dimensiune 1 x 1 din stânga-sus lipsește. Se dorește pavarea a cât mai mult din suprafața sa cu dale de dimensiune 1 x 2 (sau 2 x 1). Trebuie folosite cât mai multe dale și în plus, numărul de dale orizontale folosite trebuie să fie egal cu numărul de dale verticale folosite pentru pavare.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare pavele.in conține pe prima linie numărul n.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire pavele.out conține pe prima linie un număr r, ce reprezintă numărul de dale verticale (orizontale) folosite. Următoarele n linii conțin câte n numere întregi, separate printr-un spațiu, reprezentând codificarea modului de pavare. Numerele trebuie să fie cuprinse între –r și r. Valoarea 0 semnifică faptul că acea poziție a zonei dreptunghiulare nu se pavează (sau lipsește, întrucât se afișează 0 și în contul colțului stânga sus).&lt;br /&gt;
Pentru codificarea dalelor orizontale se folosesc câte două numere egale, cuprinse între 1 și r, așezate unul lângă altul pe aceeași linie iar pentru codificarea dalelor verticale se folosesc câte două numere egale cuprinse, cuprinse între –r și -1, așezate unul sub altul.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 5 ≤ n ≤ 299&lt;br /&gt;
* n – impar;&lt;br /&gt;
* dalele orizontale se codifică folosind valori pozitive iar cele verticale folosind valori negative;&lt;br /&gt;
* evident, dalele nu se pot suprapune și trebuie să fie complet incluse în zona dreptunghiulară;&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; pavele.in&lt;br /&gt;
&lt;br /&gt;
  5&lt;br /&gt;
; pavele.out&lt;br /&gt;
&lt;br /&gt;
  6&lt;br /&gt;
   0   1   1 -1 -2&lt;br /&gt;
   3  -4  -5 -1 -2&lt;br /&gt;
  -3  -4  -5  4  4&lt;br /&gt;
   2   2  -6  5  5&lt;br /&gt;
   3   3  -6  6  6&lt;br /&gt;
  Aici datele sunt indentate doar pentru o mai ușoară înțelegere a exemplului.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&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;
def write_output(file_name, r, pave_layout):&lt;br /&gt;
    with open(file_name, &amp;#039;w&amp;#039;) as file:&lt;br /&gt;
        file.write(str(r) + &amp;#039;\n&amp;#039;)&lt;br /&gt;
        for row in pave_layout:&lt;br /&gt;
            file.write(&amp;#039; &amp;#039;.join(map(str, row)) + &amp;#039;\n&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
def pave_surface(n):&lt;br /&gt;
    pave_layout = [[0] * n for _ in range(n)]&lt;br /&gt;
    r = n // 2 + 1&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(n):&lt;br /&gt;
            if (i + j) % 2 == 0:&lt;br /&gt;
                pave_layout[i][j] = r&lt;br /&gt;
            else:&lt;br /&gt;
                pave_layout[i][j] = -r&lt;br /&gt;
    return r, pave_layout&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    with open(&amp;quot;pavele.in&amp;quot;, &amp;#039;r&amp;#039;) as file:&lt;br /&gt;
        n = int(file.readline().strip())&lt;br /&gt;
    r, pave_layout = pave_surface(n)&lt;br /&gt;
    write_output(&amp;quot;pavele.out&amp;quot;, r, pave_layout)&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>RebecaBud</name></author>
	</entry>
</feed>