<?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=1008_-_Spirala_1</id>
	<title>1008 - Spirala 1 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1008_-_Spirala_1"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1008_-_Spirala_1&amp;action=history"/>
	<updated>2026-06-17T02:49:01Z</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=1008_-_Spirala_1&amp;diff=4815&amp;oldid=prev</id>
		<title>Alexandra Leș at 19:22, 26 April 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1008_-_Spirala_1&amp;diff=4815&amp;oldid=prev"/>
		<updated>2023-04-26T19:22:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:22, 26 April 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l74&quot;&gt;Line 74:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 74:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;== &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Explicații &lt;/del&gt;rezolvare ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Explicație &lt;/ins&gt;rezolvare ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Acest cod &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;citeste &lt;/del&gt;datele de intrare din &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;fisierul &lt;/del&gt;&quot;spirala1.in&quot; si &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;construieste &lt;/del&gt;o matrice pătratică cu toate cele n numere, în spirală, în sens invers acelor de ceas &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;astfel: pe prima coloană, începând cu linia 1, se vor trece primele elemente din şir (de sus în jos), apoi pe ultima linie, începând de la prima coloană până la ultima (de la stânga la dreapta), apoi pe ultima coloană, de la ultima linie la prima (de jos în sus), apoi pe prima linie, de la ultima coloană la prima (de la dreapta la stânga) şamd&lt;/del&gt;.&amp;lt;br&amp;gt;Mai exact, citim numarul &quot;n&quot; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;de la intrare&lt;/del&gt;, care &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;reprezinta &lt;/del&gt;numarul de elemente din matrice, iar apoi construim o matrice de dimensiune &quot;n x n&quot; cu ajutorul unui for loop care trece de la exteriorul spre interiorul matricei. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In &lt;/del&gt;interiorul loop-ului for, se citesc elementele matricei &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in functie &lt;/del&gt;de &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pozitia curenta &lt;/del&gt;a loop-ului si &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pozitiile &lt;/del&gt;pe care trebuie sa le &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aiba &lt;/del&gt;fiecare element in matrice. Ulterior, matricea &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;construita &lt;/del&gt;este &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;scrisa &lt;/del&gt;in &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;fisierul &lt;/del&gt;&quot;spirala1.out&quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Acest cod &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;citește &lt;/ins&gt;datele de intrare din &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;fișierul &lt;/ins&gt;&quot;spirala1.in&quot; si &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;construiește &lt;/ins&gt;o matrice pătratică cu toate cele n numere, în spirală, în sens invers acelor de ceas.&amp;lt;br&amp;gt;Mai exact, citim numarul &quot;n&quot; , care &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;reprezintă &lt;/ins&gt;numarul de elemente din matrice, iar apoi construim o matrice de dimensiune &quot;n x n&quot; cu ajutorul unui for loop care trece de la exteriorul spre interiorul matricei. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;În &lt;/ins&gt;interiorul loop-ului for, se citesc elementele matricei &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;în funcție &lt;/ins&gt;de &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;poziția curentă &lt;/ins&gt;a loop-ului si &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pozițiile &lt;/ins&gt;pe care trebuie sa le &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aibă &lt;/ins&gt;fiecare element in matrice. Ulterior, matricea &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;construită &lt;/ins&gt;este &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;scrisă &lt;/ins&gt;in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;fișierul &lt;/ins&gt;&quot;spirala1.out&quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Alexandra Leș</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1008_-_Spirala_1&amp;diff=4814&amp;oldid=prev</id>
		<title>Alexandra Leș: Pagină nouă: == Cerinţa == Se dau &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale, un &#039;&#039;&#039;n&#039;&#039;&#039; este un pătrat perfect. Să se construiască în memorie o matrice pătratică cu toate cele &#039;&#039;&#039;n&#039;&#039;&#039; numere, în spirală, în sens invers acelor de ceas astfel: pe prima coloană, începând cu linia &#039;&#039;&#039;1&#039;&#039;&#039;, se vor trece primele elemente din şir (de sus în jos), apoi pe ultima linie, începând de la prima coloană până la ultima (de la stânga la dreapta), apoi pe ultima coloană, de la ultima linie la prima (d...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1008_-_Spirala_1&amp;diff=4814&amp;oldid=prev"/>
		<updated>2023-04-26T19:18:11Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == Se dau &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale, un &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; este un pătrat perfect. Să se construiască în memorie o matrice pătratică cu toate cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere, în spirală, în sens invers acelor de ceas astfel: pe prima coloană, începând cu linia &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;, se vor trece primele elemente din şir (de sus în jos), apoi pe ultima linie, începând de la prima coloană până la ultima (de la stânga la dreapta), apoi pe ultima coloană, de la ultima linie la prima (d...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dau &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale, un &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; este un pătrat perfect. Să se construiască în memorie o matrice pătratică cu toate cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere, în spirală, în sens invers acelor de ceas astfel: pe prima coloană, începând cu linia &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;, se vor trece primele elemente din şir (de sus în jos), apoi pe ultima linie, începând de la prima coloană până la ultima (de la stânga la dreapta), apoi pe ultima coloană, de la ultima linie la prima (de jos în sus), apoi pe prima linie, de la ultima coloană la prima (de la dreapta la stânga) şamd.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;spirala1.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar pe următoarea linie cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Dacă datele sunt introduse corect,în fişierul de ieşire &amp;#039;&amp;#039;&amp;#039;spirala1.out&amp;#039;&amp;#039;&amp;#039; se va afișa :&amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&amp;#039;&amp;#039;&amp;#039;,apoi pe un rând va conţine matricea construită, câte o linie a matricei pe o linie a fişierului, elementele fiecărei linii fiind separate prin exact un spaţiu.În cazul contrar,se va afișa pe ecran &amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* 1 &amp;amp;les; n &amp;amp;les; 10000&lt;br /&gt;
* numerele date vor fi mai mici decât 1000&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; spirala1.in&lt;br /&gt;
: 9&lt;br /&gt;
: 2 6 7 3 7 1 7 1 5&lt;br /&gt;
; spirala1.out&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
: 2 1 7&lt;br /&gt;
: 6 5 1&lt;br /&gt;
: 7 3 7&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;
&lt;br /&gt;
def validare(n: int, lst: list[int]) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 10000):&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    if any(num &amp;gt;= 1000 for num in lst):&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    if int(n ** 0.5) ** 2 != n:&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def construieste_matrice_spirala(n: int, lst: list[int]) -&amp;gt; list[list[int]]:&lt;br /&gt;
&lt;br /&gt;
    n = int(n ** 0.5)&lt;br /&gt;
    matrice = [[0] * n for _ in range(n)]&lt;br /&gt;
&lt;br /&gt;
    for k in range(1, (n + 1) // 2 + 1):&lt;br /&gt;
        for i in range(k - 1, n - k + 1):&lt;br /&gt;
            matrice[i][k - 1] = lst.pop(0)&lt;br /&gt;
&lt;br /&gt;
        for j in range(k, n - k + 1):&lt;br /&gt;
            matrice[n - k][j] = lst.pop(0)&lt;br /&gt;
&lt;br /&gt;
        for i in range(n - k - 1, k - 2, -1):&lt;br /&gt;
            matrice[i][n - k] = lst.pop(0)&lt;br /&gt;
&lt;br /&gt;
        for j in range(n - k - 1, k - 1, -1):&lt;br /&gt;
            matrice[k - 1][j] = lst.pop(0)&lt;br /&gt;
&lt;br /&gt;
    return matrice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    with open(&amp;quot;spirala1.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        n = int(fin.readline().strip())&lt;br /&gt;
        lst = list(map(int, fin.readline().split()))&lt;br /&gt;
&lt;br /&gt;
    if validare(n, lst):&lt;br /&gt;
        matrice = construieste_matrice_spirala(n, lst)&lt;br /&gt;
        with open(&amp;quot;spirala1.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
            fout.write(&amp;quot;Datele sunt introduse corect.\n&amp;quot;)&lt;br /&gt;
            for linie in matrice:&lt;br /&gt;
                fout.write(&amp;quot; &amp;quot;.join(map(str, linie)) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    else:&lt;br /&gt;
        with open(&amp;quot;spirala1.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
           fout.write(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 == Explicații rezolvare ==&lt;br /&gt;
Acest cod citeste datele de intrare din fisierul &amp;quot;spirala1.in&amp;quot; si construieste o matrice pătratică cu toate cele n numere, în spirală, în sens invers acelor de ceas astfel: pe prima coloană, începând cu linia 1, se vor trece primele elemente din şir (de sus în jos), apoi pe ultima linie, începând de la prima coloană până la ultima (de la stânga la dreapta), apoi pe ultima coloană, de la ultima linie la prima (de jos în sus), apoi pe prima linie, de la ultima coloană la prima (de la dreapta la stânga) şamd.&amp;lt;br&amp;gt;Mai exact, citim numarul &amp;quot;n&amp;quot; de la intrare, care reprezinta numarul de elemente din matrice, iar apoi construim o matrice de dimensiune &amp;quot;n x n&amp;quot; cu ajutorul unui for loop care trece de la exteriorul spre interiorul matricei. In interiorul loop-ului for, se citesc elementele matricei in functie de pozitia curenta a loop-ului si pozitiile pe care trebuie sa le aiba fiecare element in matrice. Ulterior, matricea construita este scrisa in fisierul &amp;quot;spirala1.out&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Alexandra Leș</name></author>
	</entry>
</feed>