<?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=0282_-_Poz_Max</id>
	<title>0282 - Poz Max - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0282_-_Poz_Max"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0282_-_Poz_Max&amp;action=history"/>
	<updated>2026-06-17T09:10:33Z</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=0282_-_Poz_Max&amp;diff=3875&amp;oldid=prev</id>
		<title>MiclausIoana: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/282/pozmax] == Cerinţa == Se dă un şir cu &#039;&#039;&#039;n&#039;&#039;&#039; elemente, numere reale, numerotate de la &#039;&#039;&#039;1&#039;&#039;&#039; la &#039;&#039;&#039;n&#039;&#039;&#039;. Determinaţi numărul de ordine al primei şi al ultimei apariţii a valorii maxime din şir. == Date de intrare == Fişierul de intrare &#039;&#039;&#039;pozmax.in&#039;&#039;&#039; conţine pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;; urmează &#039;&#039;&#039;n&#039;&#039;&#039; numere reale, dispuse pe mai multe linii şi separate prin spaţii. == Date de ieșire == Dacă datele sunt introd...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0282_-_Poz_Max&amp;diff=3875&amp;oldid=prev"/>
		<updated>2023-04-20T15:20:12Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/282/pozmax] == Cerinţa == Se dă un şir cu &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; elemente, numere reale, numerotate de la &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; la &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;. Determinaţi numărul de ordine al primei şi al ultimei apariţii a valorii maxime din şir. == Date de intrare == Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;pozmax.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;; urmează &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere reale, dispuse pe mai multe linii şi separate prin spaţii. == Date de ieșire == Dacă datele sunt introd...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/282/pozmax]&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un şir cu &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; elemente, numere reale, numerotate de la &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; la &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;. Determinaţi numărul de ordine al primei şi al ultimei apariţii a valorii maxime din şir.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare &amp;#039;&amp;#039;&amp;#039;pozmax.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;; urmează &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere reale, dispuse pe mai multe linii şi separate prin spaţii.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &amp;quot;Datele sunt corecte.&amp;quot;. Fişierul de ieşire &amp;#039;&amp;#039;&amp;#039;pozmax.out&amp;#039;&amp;#039;&amp;#039; va conţine pe prima linie două numere &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;u&amp;#039;&amp;#039;&amp;#039;, reprezentând valorile cerute. În caz contrar, se va afișa pe ecran: &amp;quot;Datele nu sunt comform restricțiilor impuse.&amp;quot;. &lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; este un număr natural cu cel mult &amp;#039;&amp;#039;&amp;#039;9&amp;#039;&amp;#039;&amp;#039; cifre;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &amp;#039;&amp;#039;&amp;#039;pozmax.in&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: 8&lt;br /&gt;
: 3.5 7 -4 7 2 7 6.3 5&lt;br /&gt;
; &amp;#039;&amp;#039;&amp;#039;pozmax.out&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: 2 6&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def citeste_n():&lt;br /&gt;
    while True:&lt;br /&gt;
        try:&lt;br /&gt;
            with open(&amp;quot;pozmax.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
                n = int(fin.readline())&lt;br /&gt;
                if n &amp;gt;= 1 and n &amp;lt;= 1000000000:&lt;br /&gt;
                    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                    return n&lt;br /&gt;
                else:&lt;br /&gt;
                    print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                    exit()&lt;br /&gt;
        except ValueError:&lt;br /&gt;
            print(&amp;quot;Trebuie introduse doar numere intregi.&amp;quot;)&lt;br /&gt;
            exit()&lt;br /&gt;
&lt;br /&gt;
def citeste_valori(n):&lt;br /&gt;
    valori = []&lt;br /&gt;
    with open(&amp;quot;pozmax.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        fin.readline()&lt;br /&gt;
        for i in range(n):&lt;br /&gt;
            linie = fin.readline().strip().split()&lt;br /&gt;
            while len(linie) != n:&lt;br /&gt;
                linie += fin.readline().strip().split()&lt;br /&gt;
            try:&lt;br /&gt;
                for j in range(n):&lt;br /&gt;
                    if float(linie[j]) &amp;lt;= 10**9:&lt;br /&gt;
                        valori.append(float(linie[j]))&lt;br /&gt;
                    else:&lt;br /&gt;
                        print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                        exit()&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                print(&amp;quot;Trebuie introduse doar numere reale.&amp;quot;)&lt;br /&gt;
                exit()&lt;br /&gt;
    return valori&lt;br /&gt;
&lt;br /&gt;
def pozitii_max(valori):&lt;br /&gt;
    max_val = max(valori)&lt;br /&gt;
    p = valori.index(max_val) + 1&lt;br /&gt;
    u = len(valori) - valori[::-1].index(max_val)&lt;br /&gt;
    return p, u&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;#039;_main_&amp;#039;:&lt;br /&gt;
    n = citeste_n()&lt;br /&gt;
    valori = citeste_valori(n)&lt;br /&gt;
    p, u = pozitii_max(valori)&lt;br /&gt;
    with open(&amp;quot;pozmax.out&amp;quot;, &amp;#039;w&amp;#039;) as f:&lt;br /&gt;
        f.write(str(p) + &amp;quot; &amp;quot; + str(u))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicații ==&lt;br /&gt;
 Acest cod implementează o soluție pentru problema de găsire a pozițiilor primei și ultimei apariții a valorii maxime dintr-un șir de numere reale.&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_n() este folosită pentru a citi valoarea n din fișierul de intrare &amp;quot;pozmax.in&amp;quot; și verifică dacă se încadrează în restricțiile impuse (între 1 și 1 miliard).&lt;br /&gt;
&lt;br /&gt;
 Funcția citeste_valori(n) este utilizată pentru a citi șirul de n numere reale din fișierul de intrare &amp;quot;pozmax.in&amp;quot;. Aceasta verifică dacă numerele sunt conforme cu restricțiile impuse (valori între -1 miliard și 1 miliard) și, în caz contrar, iese din program cu un mesaj de eroare.&lt;br /&gt;
&lt;br /&gt;
 Funcția pozitii_max(valori) primește șirul de numere reale și găsește valoarea maximă din șir folosind funcția max(). Folosind metoda index(), aceasta determină poziția primei apariții a valorii maxime și adaugă 1 pentru a obține poziția în numerotare de la 1. De asemenea, calculează poziția ultimei apariții a valorii maxime folosind metoda index() combinată cu o inversare a șirului și adaugă lungimea șirului pentru a obține poziția în numerotare de la 1.&lt;br /&gt;
&lt;br /&gt;
 În funcția main(), se apelează cele trei funcții pentru a citi datele de intrare, a determina pozițiile valorii maxime și a scrie rezultatul în fișierul de ieșire &amp;quot;pozmax.out&amp;quot;.&lt;/div&gt;</summary>
		<author><name>MiclausIoana</name></author>
	</entry>
</feed>