<?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=1046_-_Munte</id>
	<title>1046 - Munte - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1046_-_Munte"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1046_-_Munte&amp;action=history"/>
	<updated>2026-05-01T21:51:13Z</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=1046_-_Munte&amp;diff=9561&amp;oldid=prev</id>
		<title>Raul: Pagină nouă: Se consideră un şir &lt;code&gt;x&lt;sub&gt;1&lt;/sub&gt;&lt;/code&gt;, &lt;code&gt;x&lt;sub&gt;2&lt;/sub&gt;&lt;/code&gt;,…, &lt;code&gt;x&lt;sub&gt;n&lt;/sub&gt;&lt;/code&gt; format din &lt;code&gt;n&lt;/code&gt; numere naturale distincte. O secvenţă de număr maxim de  elemente vecine în şir, de forma &lt;code&gt;x&lt;sub&gt;i&lt;/sub&gt;&lt;/code&gt;, &lt;code&gt;x&lt;sub&gt;i+1&lt;/sub&gt;&lt;/code&gt;,…, &lt;code&gt;x&lt;sub&gt;k-1&lt;/sub&gt;&lt;/code&gt;, &lt;code&gt;x&lt;sub&gt;k&lt;/sub&gt;&lt;/code&gt;, &lt;code&gt;x&lt;sub&gt;k+1&lt;/sub&gt;&lt;/code&gt;,…, &lt;code&gt;x&lt;sub&gt;j&lt;/sub&gt;&lt;/code&gt; (&lt;code&gt;1≤i&lt;k&lt;j≤n&lt;/code&gt;) cu proprietatea că &lt;code&gt;x&lt;sub&gt;i&lt;/sub&gt;...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1046_-_Munte&amp;diff=9561&amp;oldid=prev"/>
		<updated>2024-01-31T15:47:15Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Se consideră un şir &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;,…, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt; format din &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; numere naturale distincte. O secvenţă de număr maxim de  elemente vecine în şir, de forma &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;i+1&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;,…, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;k-1&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;k+1&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;,…, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;1≤i&amp;lt;k&amp;lt;j≤n&amp;lt;/code&amp;gt;) cu proprietatea că &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Se consideră un şir &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;,…, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt; format din &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; numere naturale distincte. O secvenţă de număr maxim de  elemente vecine în şir, de forma &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;i+1&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;,…, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;k-1&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;k+1&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;,…, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;1≤i&amp;lt;k&amp;lt;j≤n&amp;lt;/code&amp;gt;) cu proprietatea că &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; &amp;lt; x&amp;lt;sub&amp;gt;i+1&amp;lt;/sub&amp;gt; &amp;lt; ...&amp;lt; x&amp;lt;sub&amp;gt;k-1&amp;lt;/sub&amp;gt; &amp;lt; x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt; &amp;gt; x&amp;lt;sub&amp;gt;k+1&amp;lt;/sub&amp;gt; &amp;gt; ... &amp;gt; x&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, se numeşte munte cu vârful &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;. Două secvenţe munte au maxim un element comun în şir. O secvenţă munte are cel puţin &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; elemente. Un exemplu de şir format cu valorile &amp;lt;code&amp;gt;3 4 6 8&amp;lt;/code&amp;gt; nu conţine nicio secvenţă munte, iar unul format cu valorile &amp;lt;code&amp;gt;3 4 8 1 2 5 0&amp;lt;/code&amp;gt; conţine &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; secvenţe munte: &amp;lt;code&amp;gt;3 4 8 1&amp;lt;/code&amp;gt; şi &amp;lt;code&amp;gt;1 2 5 0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
După determinarea tuturor secvenţelor munte şi a vârfurilor acestora, se elimină din şir vârfurile secvenţelor munte şi procedura continuă repetat cu determinarea noilor secvenţe munte şi a vârfurilor lor din şirul nou obţinut. Procedura se opreşte în momentul în care în şir nu mai există nicio secvenţă munte.&lt;br /&gt;
&lt;br /&gt;
= Cerința =&lt;br /&gt;
Scrieţi un program care citeşte numerele &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, …, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt; şi apoi determină:&lt;br /&gt;
&lt;br /&gt;
a) numărul de secvenţe munte din şirul iniţial;&lt;br /&gt;
&lt;br /&gt;
b) numărul total de secvenţe munte obţinute pornind de la şirul iniţial până la cel care nu mai conţine nicio secvenţă munte;&lt;br /&gt;
&lt;br /&gt;
c) numărul de elemente din şirul final care nu mai conţine secvenţe munte.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Fișierul de intrare &amp;lt;code&amp;gt;munte.in&amp;lt;/code&amp;gt; conține pe prima linie numărul &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, iar pe următoarea linie numerele naturale  &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;,…, &amp;lt;code&amp;gt;x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt; separate două câte două prin câte un spaţiu.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
Fișierul de ieșire &amp;lt;code&amp;gt;munte.out&amp;lt;/code&amp;gt; va conține pe prima linie un număr natural conform cerinţei a), pe a doua linie un număr natural conform cerinţei b), pe a treia linie un număr natural conform cerinţei c).&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;3 ≤ n ≤ 100&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;0 ≤ x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; ≤ 100000&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1 ≤ i ≤ n&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pentru rezolvarea corectă a cerinţei a)  se obţine &amp;lt;code&amp;gt;20%&amp;lt;/code&amp;gt; din punctaj.&lt;br /&gt;
* Pentru rezolvarea corectă a cerinţei b)  se obţine &amp;lt;code&amp;gt;40%&amp;lt;/code&amp;gt; din punctaj.&lt;br /&gt;
* Pentru rezolvarea corectă a cerinţei c)  se obţine &amp;lt;code&amp;gt;40%&amp;lt;/code&amp;gt; din punctaj. Pentru testele date se asigură că şirul de numere dat iniţial conţine cel puţin o secvenţă munte.&lt;br /&gt;
&lt;br /&gt;
= Exemplu: =&lt;br /&gt;
&amp;lt;code&amp;gt;munte.in&amp;lt;/code&amp;gt;&lt;br /&gt;
 8&lt;br /&gt;
 1 2 5 0 6 9 3 4&lt;br /&gt;
&amp;lt;code&amp;gt;munte.out&amp;lt;/code&amp;gt;&lt;br /&gt;
 2&lt;br /&gt;
 4&lt;br /&gt;
 4&lt;br /&gt;
&lt;br /&gt;
= Explicație =&lt;br /&gt;
a) Sunt două secvenţe munte: &amp;lt;code&amp;gt;1 2 5 0&amp;lt;/code&amp;gt; şi &amp;lt;code&amp;gt;0 6 9 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) După eliminarea vârfurilor secvenţelor munte, şirul nou este &amp;lt;code&amp;gt;1 2 0 6 3 4&amp;lt;/code&amp;gt;. Acest şir conţine &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; secvenţe munte: &amp;lt;code&amp;gt;1 2 0&amp;lt;/code&amp;gt; şi &amp;lt;code&amp;gt;0 6 3&amp;lt;/code&amp;gt;. După eliminarea vârfurilor secvenţelor munte, şirul nou este &amp;lt;code&amp;gt;1 0 3 4&amp;lt;/code&amp;gt;. Noul şir nu mai conţine nicio secvenţă munte. În total sunt deci &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; secvenţe.&lt;br /&gt;
&lt;br /&gt;
c) Şirul final care nu mai conţine secvenţe munte &amp;lt;code&amp;gt;1 0 3 4&amp;lt;/code&amp;gt; are &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; elemente&lt;br /&gt;
&lt;br /&gt;
== Încărcare soluție ==&lt;br /&gt;
&lt;br /&gt;
=== Lipește codul aici ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
MAX = 1000000&lt;br /&gt;
&lt;br /&gt;
fin = open(&amp;quot;munte.in&amp;quot;, &amp;quot;r&amp;quot;)&lt;br /&gt;
fout = open(&amp;quot;munte.out&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
n = 0&lt;br /&gt;
i = 0&lt;br /&gt;
j = 0&lt;br /&gt;
parcurgere = 0&lt;br /&gt;
munti = 0&lt;br /&gt;
cati = 0&lt;br /&gt;
x = [0] * 110&lt;br /&gt;
gasit_munte = False&lt;br /&gt;
&lt;br /&gt;
n = int(fin.readline())&lt;br /&gt;
x = list(map(int, fin.readline().split()))&lt;br /&gt;
&lt;br /&gt;
parcurgere = 1&lt;br /&gt;
gasit_munte = True&lt;br /&gt;
while gasit_munte:&lt;br /&gt;
    gasit_munte = False&lt;br /&gt;
    cati = 0&lt;br /&gt;
    i = 0&lt;br /&gt;
    while i &amp;lt; n and x[i] &amp;gt; x[i + 1]:&lt;br /&gt;
        i += 1&lt;br /&gt;
    while i &amp;lt;= n:&lt;br /&gt;
        while i &amp;lt; n and x[i] &amp;lt; x[i + 1]:&lt;br /&gt;
            i += 1&lt;br /&gt;
        if i &amp;lt; n:&lt;br /&gt;
            munti += 1&lt;br /&gt;
            cati += 1&lt;br /&gt;
            x[i] = MAX&lt;br /&gt;
            gasit_munte = True&lt;br /&gt;
        while i &amp;lt; n and x[i] &amp;gt; x[i + 1]:&lt;br /&gt;
            i += 1&lt;br /&gt;
        if i &amp;lt; n and x[i] &amp;gt; x[i - 1]:&lt;br /&gt;
            i -= 1&lt;br /&gt;
        else:&lt;br /&gt;
            if i == n:&lt;br /&gt;
                break&lt;br /&gt;
    if parcurgere == 1:&lt;br /&gt;
        fout.write(str(munti) + &amp;#039;\n&amp;#039;)&lt;br /&gt;
        parcurgere += 1&lt;br /&gt;
    i = 0&lt;br /&gt;
    while i &amp;lt; n:&lt;br /&gt;
        while x[i] != MAX and i &amp;lt; n:&lt;br /&gt;
            i += 1&lt;br /&gt;
        for j in range(i, n):&lt;br /&gt;
            x[j] = x[j + 1]&lt;br /&gt;
    if gasit_munte:&lt;br /&gt;
        n -= cati&lt;br /&gt;
&lt;br /&gt;
fout.write(str(munti) + &amp;#039;\n&amp;#039;)&lt;br /&gt;
fout.write(str(n) + &amp;#039;\n&amp;#039;)&lt;br /&gt;
fin.close()&lt;br /&gt;
fout.close()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
</feed>