<?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=1129_-_Tinta</id>
	<title>1129 - Tinta - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1129_-_Tinta"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1129_-_Tinta&amp;action=history"/>
	<updated>2026-05-01T06:48:28Z</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=1129_-_Tinta&amp;diff=10199&amp;oldid=prev</id>
		<title>RaulOtet: Pagină nouă: Alex are o pasiune pentru trasul la țintă. Jucându-se cu numere, visează la o nouă tablă pentru pasiunea sa. Tabla visată este de formă pătrată cu &lt;code&gt;n&lt;/code&gt; linii și &lt;code&gt;n&lt;/code&gt; coloane, iar numerele, de la &lt;code&gt;1&lt;/code&gt; la &lt;code&gt;n * n&lt;/code&gt;,  le poziționează în țintă, ca în imaginea alăturată.  Alex, fiind un foarte bun țintaș, nu nimerește niciodată pe pătrățelele de pe contur. Când țintește o pătrățică din interior, el obține dre...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1129_-_Tinta&amp;diff=10199&amp;oldid=prev"/>
		<updated>2024-07-30T15:08:26Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Alex are o pasiune pentru trasul la țintă. Jucându-se cu numere, visează la o nouă tablă pentru pasiunea sa. Tabla visată este de formă pătrată cu &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; linii și &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; coloane, iar numerele, de la &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; la &amp;lt;code&amp;gt;n * n&amp;lt;/code&amp;gt;,  le poziționează în țintă, ca în imaginea alăturată.  Alex, fiind un foarte bun țintaș, nu nimerește niciodată pe pătrățelele de pe contur. Când țintește o pătrățică din interior, el obține dre...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Alex are o pasiune pentru trasul la țintă. Jucându-se cu numere, visează la o nouă tablă pentru pasiunea sa. Tabla visată este de formă pătrată cu &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; linii și &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; coloane, iar numerele, de la &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; la &amp;lt;code&amp;gt;n * n&amp;lt;/code&amp;gt;,  le poziționează în țintă, ca în imaginea alăturată.&lt;br /&gt;
&lt;br /&gt;
Alex, fiind un foarte bun țintaș, nu nimerește niciodată pe pătrățelele de pe contur. Când țintește o pătrățică din interior, el obține drept punctaj suma valorilor din cele opt pătrățele vecine.&lt;br /&gt;
&lt;br /&gt;
= Cerinţă =&lt;br /&gt;
Cunoscând n numărul de linii și de coloane ale țintei:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;a.&amp;#039;&amp;#039;&amp;#039; Ajutați-l pe Alex să construiască ținta visată.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;b.&amp;#039;&amp;#039;&amp;#039; Câte punctaje distincte poate să obțină Alex dacă are o singură săgeată?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;c.&amp;#039;&amp;#039;&amp;#039; Afișați punctajele distincte găsite.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Fișierul de intrare &amp;lt;code&amp;gt;tinta.in&amp;lt;/code&amp;gt; conține pe prima linie numărul natural &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, indicând numărul de linii și de coloane ale țintei.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
Fișierul de ieșire &amp;lt;code&amp;gt;tinta.out&amp;lt;/code&amp;gt; va conține pe primele &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; linii câte &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; numere naturale, separate prin câte un spațiu, reprezentând numerele de pe cele &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; linii ale țintei. Pe linia &amp;lt;code&amp;gt;n+1&amp;lt;/code&amp;gt; se va afișa un singur număr  &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; reprezentând  numărul de punctaje distincte. Pe linia &amp;lt;code&amp;gt;n+2&amp;lt;/code&amp;gt; se vor afișa &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; numere naturale separate prin câte un spațiu și ordonate strict crescător, reprezentând punctajele distincte.&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;3 ≤ n ≤ 1000&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pentru prima cerinţă afişată corect se va acorda 40% din punctaj; pentru a doua cerință se va acorda 20% din punctaj; pentru cea de-a treia cerință se va acorda 40% din punctaj.&lt;br /&gt;
&lt;br /&gt;
= Exemplul 1 =&lt;br /&gt;
&amp;lt;code&amp;gt;tinta.in&amp;lt;/code&amp;gt;&lt;br /&gt;
 3&lt;br /&gt;
&amp;lt;code&amp;gt;tinta.out&amp;lt;/code&amp;gt;&lt;br /&gt;
 1  2  6  &lt;br /&gt;
 3  5  7  &lt;br /&gt;
 4  8  9&lt;br /&gt;
 1&lt;br /&gt;
 40&lt;br /&gt;
&lt;br /&gt;
= Explicație =&lt;br /&gt;
Alex poate ținti doar în pătrățelul interior (cel pe care avem &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;), deci obține un singur punctaj, iar suma este &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Exemplul 2 =&lt;br /&gt;
&amp;lt;code&amp;gt;tinta.in&amp;lt;/code&amp;gt;&lt;br /&gt;
 4&lt;br /&gt;
&amp;lt;code&amp;gt;tinta.out&amp;lt;/code&amp;gt;&lt;br /&gt;
 1 2 6 7&lt;br /&gt;
 3 5 8 13&lt;br /&gt;
 4 9 12 14&lt;br /&gt;
 10 11 15 16&lt;br /&gt;
 3&lt;br /&gt;
 45 68 91&lt;br /&gt;
&lt;br /&gt;
= Explicație =&lt;br /&gt;
Alex poate ținti doar pătrăţelele &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; sau &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def create_spiral_matrix(n):&lt;br /&gt;
    matrix = [[0] * n for _ in range(n)]&lt;br /&gt;
    num = 1&lt;br /&gt;
    left, right, top, bottom = 0, n - 1, 0, n - 1&lt;br /&gt;
&lt;br /&gt;
    while left &amp;lt;= right and top &amp;lt;= bottom:&lt;br /&gt;
        for i in range(left, right + 1):&lt;br /&gt;
            matrix[top][i] = num&lt;br /&gt;
            num += 1&lt;br /&gt;
        top += 1&lt;br /&gt;
        for i in range(top, bottom + 1):&lt;br /&gt;
            matrix[i][right] = num&lt;br /&gt;
            num += 1&lt;br /&gt;
        right -= 1&lt;br /&gt;
        for i in range(right, left - 1, -1):&lt;br /&gt;
            matrix[bottom][i] = num&lt;br /&gt;
            num += 1&lt;br /&gt;
        bottom -= 1&lt;br /&gt;
        for i in range(bottom, top - 1, -1):&lt;br /&gt;
            matrix[i][left] = num&lt;br /&gt;
            num += 1&lt;br /&gt;
        left += 1&lt;br /&gt;
&lt;br /&gt;
    return matrix&lt;br /&gt;
&lt;br /&gt;
def calculate_scores(matrix, n):&lt;br /&gt;
    scores = set()&lt;br /&gt;
    for i in range(1, n - 1):&lt;br /&gt;
        for j in range(1, n - 1):&lt;br /&gt;
            score = (matrix[i - 1][j - 1] + matrix[i - 1][j] + matrix[i - 1][j + 1] +&lt;br /&gt;
                     matrix[i][j - 1] + matrix[i][j + 1] +&lt;br /&gt;
                     matrix[i + 1][j - 1] + matrix[i + 1][j] + matrix[i + 1][j + 1])&lt;br /&gt;
            scores.add(score)&lt;br /&gt;
    return scores&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    n = int(input(&amp;quot;Introduceți valoarea lui n: &amp;quot;))&lt;br /&gt;
    spiral_matrix = create_spiral_matrix(n)&lt;br /&gt;
    &lt;br /&gt;
    print(&amp;quot;Matricea spirală:&amp;quot;)&lt;br /&gt;
    for row in spiral_matrix:&lt;br /&gt;
        print(&amp;#039; &amp;#039;.join(map(str, row)))&lt;br /&gt;
&lt;br /&gt;
    if n &amp;lt; 3:&lt;br /&gt;
        print(&amp;quot;Nu există pătrățele din interior pentru n &amp;lt; 3.&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    &lt;br /&gt;
    scores = calculate_scores(spiral_matrix, n)&lt;br /&gt;
    print(f&amp;quot;Numărul de punctaje distincte: {len(scores)}&amp;quot;)&lt;br /&gt;
    print(&amp;quot;Punctajele distincte sunt:&amp;quot;)&lt;br /&gt;
    for score in sorted(scores):&lt;br /&gt;
        print(score)&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>RaulOtet</name></author>
	</entry>
</feed>