<?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=0694_-_Sam</id>
	<title>0694 - Sam - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0694_-_Sam"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0694_-_Sam&amp;action=history"/>
	<updated>2026-05-01T03:56:36Z</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=0694_-_Sam&amp;diff=10015&amp;oldid=prev</id>
		<title>RebecaBud: Pagină nouă: == Enunt ==  Aranjăm primele N numere naturale nenule sub forma unui șir A[1], A[2], ..., A[N].  Fie X[1], X[2],...,X[K] (K ≥ 3), un subșir al șirului A. Numim extrem local al subșirului X termenul din mijlocul unei secvențe de lungime trei din subșir, X[i-1], X[i], X[i+1], cu proprietatea: X[i-1]&lt;X[i]&gt;X[i+1], 1&lt;i&lt;K sau X[i-1]&gt;X[i]&lt;X[i+1], 1&lt;i&lt;K.  Vom nota cu nrex(X) numărul de extreme locale ale subșirului X.  Spunem că un subșir X[1], X[2],...,X[K] (K≥2) al...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0694_-_Sam&amp;diff=10015&amp;oldid=prev"/>
		<updated>2024-06-03T16:51:08Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Enunt ==  Aranjăm primele N numere naturale nenule sub forma unui șir A[1], A[2], ..., A[N].  Fie X[1], X[2],...,X[K] (K ≥ 3), un subșir al șirului A. Numim extrem local al subșirului X termenul din mijlocul unei secvențe de lungime trei din subșir, X[i-1], X[i], X[i+1], cu proprietatea: X[i-1]&amp;lt;X[i]&amp;gt;X[i+1], 1&amp;lt;i&amp;lt;K sau X[i-1]&amp;gt;X[i]&amp;lt;X[i+1], 1&amp;lt;i&amp;lt;K.  Vom nota cu nrex(X) numărul de extreme locale ale subșirului X.  Spunem că un subșir X[1], X[2],...,X[K] (K≥2) al...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Enunt ==&lt;br /&gt;
&lt;br /&gt;
Aranjăm primele N numere naturale nenule sub forma unui șir A[1], A[2], ..., A[N].&lt;br /&gt;
&lt;br /&gt;
Fie X[1], X[2],...,X[K] (K ≥ 3), un subșir al șirului A. Numim extrem local al subșirului X termenul din mijlocul unei secvențe de lungime trei din subșir, X[i-1], X[i], X[i+1], cu proprietatea: X[i-1]&amp;lt;X[i]&amp;gt;X[i+1], 1&amp;lt;i&amp;lt;K sau X[i-1]&amp;gt;X[i]&amp;lt;X[i+1], 1&amp;lt;i&amp;lt;K.&lt;br /&gt;
&lt;br /&gt;
Vom nota cu nrex(X) numărul de extreme locale ale subșirului X.&lt;br /&gt;
&lt;br /&gt;
Spunem că un subșir X[1], X[2],...,X[K] (K≥2) al șirului A este subșir alternant dacă nrex(X)=K-2, adică exceptând primul și ultimul termen din subșir toți ceilalți termeni sunt extreme locale ale subșirului X.&lt;br /&gt;
&lt;br /&gt;
Dintre toate subșirurile alternante ale șirului A ne interesează cele de lungime maximă pe care le vom numi subșiruri alternante maximale.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Cunoscând N și tabloul A se cere să se determine restul obținut la împărțirea dintre numărul M al subșirurilor alternante maximale ale tabloului A și numărul 1000003.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare sam.in conţine pe prima linie numărul natural N. Pe linia a doua se găsesc cele N numere ale șirului dat separate prin câte un spațiu.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
În fişierul de ieşire sam.out se va scrie numărul obţinut ca rest la împărţirea dintre numărul M, având semnificația descrisă mai sus, şi numărul 1000003.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;3 ≤ N ≤ 100 000&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; sam.in&lt;br /&gt;
&lt;br /&gt;
  7&lt;br /&gt;
  1 3 5 4 7 6 2&lt;br /&gt;
; sam.out&lt;br /&gt;
&lt;br /&gt;
 6&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Șirul dat conține trei extreme locale , valorile 5, 4 și 7. Cele șase subșiruri alternante maximale cu șirul dat sunt: (1 5 4 6 2), (1 5 4 7 2), (1 5 4 7 6), (3 5 4 6 2), (3 5 4 7 2), (3 5 4 7 6)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&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 count_alternating_subsequences(N, A):&lt;br /&gt;
    count = 0&lt;br /&gt;
    &lt;br /&gt;
    for i in range(1, N - 1):&lt;br /&gt;
        if (A[i - 1] &amp;lt; A[i] &amp;gt; A[i + 1]) or (A[i - 1] &amp;gt; A[i] &amp;lt; A[i + 1]):&lt;br /&gt;
            count += 1&lt;br /&gt;
    &lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    with open(&amp;quot;sam.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        N = int(fin.readline())&lt;br /&gt;
        A = list(map(int, fin.readline().split()))&lt;br /&gt;
    &lt;br /&gt;
    M = count_alternating_subsequences(N, A)&lt;br /&gt;
    &lt;br /&gt;
    with open(&amp;quot;sam.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        fout.write(str(M % 1000003))&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>