<?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=1424_-_Smartphone</id>
	<title>1424 - Smartphone - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1424_-_Smartphone"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1424_-_Smartphone&amp;action=history"/>
	<updated>2026-05-01T04:04:41Z</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=1424_-_Smartphone&amp;diff=5385&amp;oldid=prev</id>
		<title>MiclausIoana: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/1424/smartphone] == Enunt == Andrei este elev în clasa a V-a și își dorește mult un smartphone. Tatăl său știe de acest lucru și s-a gândit să-i facă o bucurie de ziua lui. Așa că a hotărât să-l ducă într-un magazin de telefoane să-și aleagă unul. Fiecare telefon este inscripţionat cu un număr ce reprezintă performanţa acestuia. Cu cât numărul este mai mare, cu atât telefonul este mai bun. Andrei l-a dorit p...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1424_-_Smartphone&amp;diff=5385&amp;oldid=prev"/>
		<updated>2023-04-29T10:56:22Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/1424/smartphone] == Enunt == Andrei este elev în clasa a V-a și își dorește mult un smartphone. Tatăl său știe de acest lucru și s-a gândit să-i facă o bucurie de ziua lui. Așa că a hotărât să-l ducă într-un magazin de telefoane să-și aleagă unul. Fiecare telefon este inscripţionat cu un număr ce reprezintă performanţa acestuia. Cu cât numărul este mai mare, cu atât telefonul este mai bun. Andrei l-a dorit p...&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/1424/smartphone]&lt;br /&gt;
== Enunt ==&lt;br /&gt;
Andrei este elev în clasa a V-a și își dorește mult un smartphone. Tatăl său știe de acest lucru și s-a gândit să-i facă o bucurie de ziua lui. Așa că a hotărât să-l ducă într-un magazin de telefoane să-și aleagă unul.&lt;br /&gt;
Fiecare telefon este inscripţionat cu un număr ce reprezintă performanţa acestuia. Cu cât numărul este mai mare, cu atât telefonul este mai bun. Andrei l-a dorit pe cel mai performant (cu numărul cel mai mare) dar tatăl lui i l-a cumpărat pe al doilea ca performanță.&lt;br /&gt;
== Cerință ==&lt;br /&gt;
Dându-se numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; de smatphone-uri și performanța fiecăruia, să se determine:&lt;br /&gt;
: 1. Numărul cu care este inscripționat telefonul dorit de Andrei;&lt;br /&gt;
: 2. Numărul cu care este inscripționat telefonul pe care l-a primit Andrei.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;smartphone.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie un număr natural &amp;#039;&amp;#039;&amp;#039;c&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; sau &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;) reprezentând numărul cerinței ce trebuie rezolvată.&lt;br /&gt;
A doua linie conține numărul natural &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; reprezentând numărul de telefoane din magazin.&lt;br /&gt;
A treia linie conține &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; valori naturale distincte, separate prin câte un spaţiu, reprezentând performanțele telefoanelor.&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;smartphone.out&amp;#039;&amp;#039;&amp;#039; va conține pe prima linie un singur număr reprezentând răspunsul la cerința citită din fișierul de intrare. Î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;1 ≤ n ≤ 10000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ x ≤ 2000000000&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;x =&amp;#039;&amp;#039;&amp;#039; numărul inscripționat pe telefon)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Pentru c = 1 se va rezolva doar cerința 1. Pentru c = 2 se va rezolva doar cerința 2&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== Exemplu 1 ===&lt;br /&gt;
; &amp;#039;&amp;#039;&amp;#039;smartphone.in&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: 1&lt;br /&gt;
: 5&lt;br /&gt;
: 12 345 231 29 100&lt;br /&gt;
; &amp;#039;&amp;#039;&amp;#039;smartphone.out&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: 345&lt;br /&gt;
==== Explicatie ====&lt;br /&gt;
Cerința este 1. Numărul inscripționat pe telefonul dorit de Andrei este &amp;#039;&amp;#039;&amp;#039;345&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
=== Exemplu 2 ===&lt;br /&gt;
; &amp;#039;&amp;#039;&amp;#039;smartphone.in&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: 2&lt;br /&gt;
: 5&lt;br /&gt;
: 12 345 231 29 100&lt;br /&gt;
; &amp;#039;&amp;#039;&amp;#039;smartphone.out&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: 231&lt;br /&gt;
==== Explicatie ====&lt;br /&gt;
Cerința este 2. Numărul inscripționat pe telefonul primit de Andrei este &amp;#039;&amp;#039;&amp;#039;231&amp;#039;&amp;#039;&amp;#039;.&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_valori():&lt;br /&gt;
    while True:&lt;br /&gt;
        try:&lt;br /&gt;
            with open(&amp;#039;smartphone.in&amp;#039;) as fin:&lt;br /&gt;
                n = int(fin.readline())&lt;br /&gt;
                x = list(map(int, fin.readline().split()))&lt;br /&gt;
                if 1 &amp;lt;= n &amp;lt;= 10000 and all(1 &amp;lt;= xi &amp;lt;= 2000000000 for xi in x):&lt;br /&gt;
                    print(&amp;quot;Datele sunt corecte.&amp;quot;)&lt;br /&gt;
                    with open(&amp;#039;smartphone.out&amp;#039;, &amp;#039;a&amp;#039;) as fout:&lt;br /&gt;
                        fout.write(&amp;quot;Datele sunt corecte.\n&amp;quot;)&lt;br /&gt;
                    return n,x&lt;br /&gt;
                else:&lt;br /&gt;
                    print(&amp;quot;Datele nu sunt conform restricțiilor impuse.&amp;quot;)&lt;br /&gt;
                    with open(&amp;#039;smartphone.out&amp;#039;, &amp;#039;a&amp;#039;) as fout:&lt;br /&gt;
                        fout.write(&amp;quot;Datele nu sunt conform restricțiilor impuse.\n&amp;quot;)&lt;br /&gt;
        except ValueError:&lt;br /&gt;
            print(&amp;quot;Trebuie introduse doar numere întregi.&amp;quot;)&lt;br /&gt;
            with open(&amp;#039;smartphone.out&amp;#039;, &amp;#039;a&amp;#039;) as fout:&lt;br /&gt;
                fout.write(&amp;quot;Trebuie introduse doar numere întregi.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def smartphone(n, x):&lt;br /&gt;
    with open(&amp;#039;smartphone.out&amp;#039;, &amp;#039;a&amp;#039;) as fout:&lt;br /&gt;
        fout.write(&amp;quot;Numarul cu care este inscriptionat telefonul dorit de Andrei este: &amp;quot; + str(max(x)) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        if len(x) &amp;gt;= 2:&lt;br /&gt;
            fout.write(&amp;quot;Numarul cu care este inscriptionat telefonul pe care l-a primit Andrei este: &amp;quot; + str(sorted(x, reverse=True)[1]) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            fout.write(&amp;quot;Nu exista un al doilea numar inscriptat pe un smartphone.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if _name_ == &amp;#039;_main_&amp;#039;:&lt;br /&gt;
    n, x = citeste_valori()&lt;br /&gt;
    smartphone(n, x)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
 Acest cod implementează două funcții, citeste_valori() și smartphone(n, x). Funcția citeste_valori() deschide fișierul &amp;quot;smartphone.in&amp;quot; și încearcă să citească două linii din el: prima linie conține un număr întreg n, iar a doua linie conține n numere întregi separate prin spațiu, stocate într-o listă x. Această funcție validează dacă datele citite sunt conforme cu restricțiile impuse (n trebuie să fie între 1 și 10000, iar fiecare element din lista x trebuie să fie între 1 și 2000000000), și afișează un mesaj corespunzător în cazul în care datele nu sunt conforme. Dacă datele sunt conforme, funcția returnează n și x.&lt;br /&gt;
&lt;br /&gt;
 Funcția smartphone(n, x) primește n și x ca argumente și deschide fișierul &amp;quot;smartphone.out&amp;quot;. Funcția scrie în acest fișier numărul cel mai mare din lista x (reprezentând numărul cu care este inscripționat telefonul dorit de Andrei), și, dacă lista x are cel puțin două elemente, al doilea cel mai mare număr din listă (reprezentând numărul cu care este inscripționat telefonul pe care l-a primit Andrei). Dacă lista x are un singur element, funcția afișează un mesaj corespunzător în fișierul de ieșire.&lt;br /&gt;
&lt;br /&gt;
 În blocul if _name_ == &amp;#039;_main_&amp;#039;:, se apelează funcția citeste_valori() pentru a citi datele din fișierul &amp;quot;smartphone.in&amp;quot;, apoi se apelează funcția smartphone(n, x) pentru a scrie rezultatele în fișierul &amp;quot;smartphone.out&amp;quot;.&lt;/div&gt;</summary>
		<author><name>MiclausIoana</name></author>
	</entry>
</feed>