<?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=0976_-_Sir_3</id>
	<title>0976 - Sir 3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0976_-_Sir_3"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0976_-_Sir_3&amp;action=history"/>
	<updated>2026-05-01T06:49:39Z</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=0976_-_Sir_3&amp;diff=9971&amp;oldid=prev</id>
		<title>RebecaBud: Pagină nouă: == Enunt == Se consideră şirul de numere naturale ai cărui primi termeni sunt, în această ordine:  1, 5, 3, 7, 9, 11, 19, 17, 15, 13, 21,... Se grupează numerele din şir astfel: * prima grupă, numerotată cu 1, conţine primul termen al şirului (1) * a doua grupă, numerotată cu 2, conţine următorii doi termeni ai şirului (5,3) * a treia grupă, numerotată cu 3, conţine următorii trei termeni ai şirului (7,9,11) ………………………. * a n-a grupă din...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0976_-_Sir_3&amp;diff=9971&amp;oldid=prev"/>
		<updated>2024-06-03T15:47:04Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Enunt == Se consideră şirul de numere naturale ai cărui primi termeni sunt, în această ordine:  1, 5, 3, 7, 9, 11, 19, 17, 15, 13, 21,... Se grupează numerele din şir astfel: * prima grupă, numerotată cu 1, conţine primul termen al şirului (1) * a doua grupă, numerotată cu 2, conţine următorii doi termeni ai şirului (5,3) * a treia grupă, numerotată cu 3, conţine următorii trei termeni ai şirului (7,9,11) ………………………. * a n-a grupă din...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Enunt ==&lt;br /&gt;
Se consideră şirul de numere naturale ai cărui primi termeni sunt, în această ordine:&lt;br /&gt;
&lt;br /&gt;
1, 5, 3, 7, 9, 11, 19, 17, 15, 13, 21,...&lt;br /&gt;
Se grupează numerele din şir astfel:&lt;br /&gt;
* prima grupă, numerotată cu 1, conţine primul termen al şirului (1)&lt;br /&gt;
* a doua grupă, numerotată cu 2, conţine următorii doi termeni ai şirului (5,3)&lt;br /&gt;
* a treia grupă, numerotată cu 3, conţine următorii trei termeni ai şirului (7,9,11)&lt;br /&gt;
……………………….&lt;br /&gt;
* a n-a grupă din şir, numerotată cu n, conţine următorii n termeni ai şirului&lt;br /&gt;
etc.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Deduceţi regula după care sunt generaţi termenii şirului şi scrieţi un program care să citească numerele naturale p, n şi k şi care să determine:&lt;br /&gt;
&lt;br /&gt;
a) termenul de pe poziţia p din şirul din enunţ;&lt;br /&gt;
b) cel mai mare număr natural palindrom care poate fi obţinut folosindu-se cifrele tuturor numerelor din grupa a n-a a şirului dat, nu neapărat toate aceste cifre;&lt;br /&gt;
c) numărul grupei ce conţine un număr maxim de termeni şi are proprietatea că suma acestor termeni este cel mult egală cu k.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură cele trei numere, &amp;#039;&amp;#039;&amp;#039;p n k&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran trei numere, reprezentând, în ordine:&lt;br /&gt;
&lt;br /&gt;
* termenul de pe poziţia p din şirul din enunţ;&lt;br /&gt;
* cel mai mare număr natural palindrom care poate fi obţinut folosindu-se cifrele din scrierea zecimală a &lt;br /&gt;
* tuturor termenilor din grupa a n-a a şirului dat, nu neapărat toate aceste cifre;&lt;br /&gt;
* pe a treia linie se va scrie numărul grupei ce conţine un număr maxim de termeni şi are proprietatea că suma &lt;br /&gt;
* acestora este cel mult egală cu k.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* Numerele p, n şi k sunt naturale&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ p ≤ 1000000000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ n ≤ 50&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ k ≤ 2000000000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* un număr natural este palindrom dacă este egal cu numărul obţinut prin scrierea cifrelor sale în ordine inversă&lt;br /&gt;
* Pentru rezolvarea cerinţei a) se acordă 40% din punctaj, pentru cerinţa b) 30% din punctaj şi pentru cerinţa c) 30% din punctaj.&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
&lt;br /&gt;
7 5 127&lt;br /&gt;
; Ieșire&lt;br /&gt;
&lt;br /&gt;
19&lt;br /&gt;
22922&lt;br /&gt;
5&lt;br /&gt;
== Explicație ==&lt;br /&gt;
* Primii 7 termeni ai şirului sunt: 1,5,3,7,9,11,19. Termenul căutat are valoarea 19.&lt;br /&gt;
* Numerele din grupa a 5-a sunt scrise cu ajutorul a cinci cifre de 2, o cifră de 3, una de 5, una de 7, una de 9. &lt;br /&gt;
* Cel mai mare palindrom care se poate scrie cu aceste cifre este 22922.&lt;br /&gt;
* Grupele a căror sumă este cel mult egală cu k=127 sunt: 1,2,3,4,5. Grupa cu cei mai mulţi termeni şi cu suma maximă (=125) este grupa 5.&lt;br /&gt;
&amp;lt;br&amp;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 generate_sequence(n):&lt;br /&gt;
    sequence = [1]&lt;br /&gt;
    current = 5&lt;br /&gt;
    for i in range(2, n + 1):&lt;br /&gt;
        sequence.extend(range(current, current + i))&lt;br /&gt;
        current += i + 1&lt;br /&gt;
    return sequence&lt;br /&gt;
&lt;br /&gt;
def find_term(p, n):&lt;br /&gt;
    sequence = generate_sequence(n)&lt;br /&gt;
    return sequence[p - 1]&lt;br /&gt;
&lt;br /&gt;
def is_palindrome(num):&lt;br /&gt;
    return str(num) == str(num)[::-1]&lt;br /&gt;
&lt;br /&gt;
def find_largest_palindrome(numbers):&lt;br /&gt;
    palindromes = [int(str(num)[::-1]) for num in numbers if is_palindrome(num)]&lt;br /&gt;
    return max(palindromes)&lt;br /&gt;
&lt;br /&gt;
def find_max_group(p, n, k):&lt;br /&gt;
    max_sum = 0&lt;br /&gt;
    max_group = 0&lt;br /&gt;
    sequence = generate_sequence(n)&lt;br /&gt;
    for i in range(1, n + 1):&lt;br /&gt;
        group = sequence[sum(range(i)) : sum(range(i + 1))]&lt;br /&gt;
        group_sum = sum(group)&lt;br /&gt;
        if group_sum &amp;lt;= k and len(group) &amp;gt; max_group:&lt;br /&gt;
            max_group = len(group)&lt;br /&gt;
            max_sum = group_sum&lt;br /&gt;
    return max_group&lt;br /&gt;
&lt;br /&gt;
p, n, k = map(int, input().split())&lt;br /&gt;
&lt;br /&gt;
# a)&lt;br /&gt;
term = find_term(p, n)&lt;br /&gt;
print(term)&lt;br /&gt;
&lt;br /&gt;
# b)&lt;br /&gt;
group_n = generate_sequence(n)[sum(range(n)): sum(range(n + 1))]&lt;br /&gt;
largest_palindrome = find_largest_palindrome(group_n)&lt;br /&gt;
print(largest_palindrome)&lt;br /&gt;
&lt;br /&gt;
# c)&lt;br /&gt;
max_group = find_max_group(p, n, k)&lt;br /&gt;
print(max_group)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>RebecaBud</name></author>
	</entry>
</feed>