<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pop+Giulia</id>
	<title>Bitnami MediaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pop+Giulia"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/wiki/Special:Contributions/Pop_Giulia"/>
	<updated>2026-05-01T10:09:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4079_-_Ceas_1&amp;diff=6732</id>
		<title>4079 - Ceas 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4079_-_Ceas_1&amp;diff=6732"/>
		<updated>2023-05-20T13:10:55Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4079/ceas1]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Un atelier de fabricat ceasuri cu cuc are nevoie de plăcuțe cu numerele pentru orele pe care trebuie să le așeze pe discul ceasurilor. Aceste numere sunt realizate la o imprimantă.&lt;br /&gt;
Din cauza unei erori imprimanta tipărește plăcuțe cu numere naturale, unele mai mari ca 12. Atelierul poate utiliza doar plăcuțe cu numere cuprinse ı̂ntre 0 și 12. Pentru a utiliza aceste numere este nevoie ca ele să fie tăiate ı̂ncepând din partea dreaptă ı̂n grupuri de maximum două cifre, fiecare grup reprezentând valoarea de pe o plăcuță, care să fie o cifră la 0 la 9 sau unul dintre numerele 10, 11, 12. Dacă pe o plăcuță se găsește un număr mai mare ca 12 atunci plăcuța trebuie tăiată, astfel ı̂ncât ı̂n urma tăierii să se obțină numere de cel mult 2 cifre. Dacă ı̂n numărul de pe o plăcuță cifra zecilor este 0, atunci la prima tăiere se ia doar cifra unităților, altfel dacă numărul format cu cifra zecilor și unităților este mai mare ca 12, atunci se taie prima dată cifra unităților, iar dacă numărul format cu cifra zecilor și unităților este 10, 11 sau 12 se taie prima dată numărul format din ultimele două cifre, apoi procedeul se repetă până la tăierea completă a plăcuței. Imprimanta a realizat N plăcuțe. De exemplu dacă plăcuța este 12030, după tăiere se obțin 0, 3, 0, 12.&lt;br /&gt;
&lt;br /&gt;
==Cerința 1==&lt;br /&gt;
Determinați numărul total de apariții ale cifrei X pe plăcuțe ı̂nainte de tăiere.&lt;br /&gt;
&lt;br /&gt;
==Cerința 2==&lt;br /&gt;
Determinați numărul de tăieturi realizate conform enunțului.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Pe prima linie a fișierului ceas.in se află valorile C, X și N separate prin câte un singur spațiu. Pe linia a doua se află N numere naturale separate prin câte un singur spațiu, având semnificația din enunț. Pentru C = 1 se rezolvă doar cerința 1, iar pentru C = 2 se rezolvă doar cerința 2.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fișierul ceas.out conține pe prima linie un singur număr natural care reprezintă valoarea calculată&lt;br /&gt;
conform cerinței.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ N ≤ 100.000&lt;br /&gt;
0 ≤ X ≤ 9&lt;br /&gt;
Valorile din șir sunt numere naturale ≤ 50.000&lt;br /&gt;
Pentru testele în care avem C=2 valoarea X este prezentă în fișierul de intrare chiar dacă nu este folosită în rezolvare.&lt;br /&gt;
Pentru teste în valoare de 39 de puncte avem C = 1&lt;br /&gt;
Pentru teste în valoare de 61 de puncte avem C = 2&lt;br /&gt;
==Exemplul 1:==&lt;br /&gt;
ceas.in&lt;br /&gt;
&lt;br /&gt;
1 0 6&lt;br /&gt;
1010 40 201 5123 31 6&lt;br /&gt;
ceas.out&lt;br /&gt;
&lt;br /&gt;
4&lt;br /&gt;
==Explicație==&lt;br /&gt;
Pe plăcuțe cifra 0 apare de patru ori.&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2:==&lt;br /&gt;
ceas.in&lt;br /&gt;
&lt;br /&gt;
2 0 6&lt;br /&gt;
120 40 201 5123 31 6&lt;br /&gt;
ceas.out&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
==Explicație==&lt;br /&gt;
În ordinea tăierilor se obțin: 0,12; 0,4; 1,0,2; 3,12,5; 1,3; 6. Numărul de tăieturi este 7.&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# definim o functie care returneaza lista de placute obtinuta in urma taietorilor&lt;br /&gt;
def taie_placuta(placuta):&lt;br /&gt;
    placute_noi = [] # lista de placute noi&lt;br /&gt;
    while placuta: # cat timp mai avem cifre pe placuta initiala&lt;br /&gt;
        if placuta &amp;lt; 10: # daca avem o singura cifra&lt;br /&gt;
            placute_noi.append(placuta) # adaugam placuta noua&lt;br /&gt;
            break # nu mai avem cifre&lt;br /&gt;
        elif placuta &amp;lt;= 12: # daca avem 2 cifre si sunt &amp;lt;= 12&lt;br /&gt;
            placute_noi.append(placuta) # adaugam placuta noua&lt;br /&gt;
            break # nu mai avem cifre&lt;br /&gt;
        else: # daca avem 2 cifre si sunt &amp;gt; 12&lt;br /&gt;
            if placuta % 10 == 0: # daca cifra unitatilor este 0&lt;br /&gt;
                placute_noi.append(placuta // 10) # adaugam cifra zecilor&lt;br /&gt;
                placuta = placuta // 10 # trecem la urmatoarea cifra&lt;br /&gt;
            elif placuta % 100 in [10, 11, 12]: # daca avem numerele 10, 11, 12&lt;br /&gt;
                placute_noi.append(placuta % 100) # adaugam cele 2 cifre&lt;br /&gt;
                placuta = placuta // 100 # trecem la urmatoarea cifra&lt;br /&gt;
            else: # daca avem 2 cifre si nu sunt 10, 11 sau 12&lt;br /&gt;
                placute_noi.append(placuta % 10) # adaugam cifra unitatilor&lt;br /&gt;
                placuta = placuta // 10 # trecem la urmatoarea cifra&lt;br /&gt;
    return placute_noi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# citim datele de intrare&lt;br /&gt;
C, X, N = map(int, input().split())&lt;br /&gt;
placute = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
if C == 1: # daca trebuie sa rezolvam cerinta 1&lt;br /&gt;
    aparitii_X = 0 # initializam numarul de aparitii ale cifrei X cu 0&lt;br /&gt;
    for placuta in placute: # pentru fiecare placuta&lt;br /&gt;
        while placuta: # cat timp mai avem cifre pe placuta&lt;br /&gt;
            if placuta % 10 == X: #&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3769_-_Iepuras_2&amp;diff=6731</id>
		<title>3769 - Iepuras 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3769_-_Iepuras_2&amp;diff=6731"/>
		<updated>2023-05-20T13:09:59Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3769/iepuras2]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Pentru că îi plac cifrele, Skippie, iepurașul norocos, a stabilit cum se obține cifra de control a unui număr: se efectuează suma cifrelor sale, apoi suma cifrelor acestei sume, până când suma obținută este un număr format dintr-o singură cifră. Această ultimă cifră, spune Skippie, poartă numele de cifră de control. Skippie a ascuns în păadure n ouă roșii. Pe fiecare ou a pictat câte un număr natural nenul. Iar acum se întreabă care este suma dintre cel mai mare și cel mai mic număr natural care se pot forma din toate cifrele distincte folosite în scrierea numărului pictat. În plus, pentru că lui Skippie îi plac problemele complicate, pentru fiecare număr pictat pe câte un ou el ar vrea să afle și de câte ori apare cifra de control a numărului în scrierea tuturor numerelor naturale mai mici sau egale decât numărul pictat.&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
1. Pentru fiecare dintre cele n numere pictate de Skippie aflați suma dintre cel mai mare și cel mai mic număr natural care se pot forma din toate cifrele distincte folosite în scrierea numărului pictat.&lt;br /&gt;
2. Pentru fiecare dintre cele n numere pictate de Skippie aflați de câte ori apare cifra de control a numărului pictat în scrierea tuturor numerelor naturale mai mici sau egale decât numărul pictat.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare iepuras.in conține un număr natural C. Acesta poate avea valorile 1 sau 2 și reprezintă cerința problemei. Cea de-a doua linie a fișierului de intrare conține un număr natural n reprezentând numărul de ouă roșii pictate de Skippie. Fiecare dintre următoarele n linii ale fișierului de intrare conține câte un număr natural nenul reprezentând numerele pictate de iepuras, pe cele n ouă roșii.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fișierul de ieșire iepuras.out va conține n numere întregi, fiecare pe o linie separată. În ordinea apariției numerelor pictate de iepuras în fișierul de intrare, se afișează răspunsurile la cerința C.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ C ≤ 2&lt;br /&gt;
1 ≤ n ≤ 100.000&lt;br /&gt;
numerele pictate de iepuraș sunt mai mici sau egale cu 1018&lt;br /&gt;
==Exemplul 1:==&lt;br /&gt;
iepuras.in&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
121&lt;br /&gt;
33343&lt;br /&gt;
iepuras.out&lt;br /&gt;
&lt;br /&gt;
33&lt;br /&gt;
77&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se rezolvă cerința 1. Sunt 2 ouă pictate (n = 2). Pentru primul ou, pictat cu numărul 121:&lt;br /&gt;
- cel mai mare număr natural cu cifre distincte format cu toate cifrele distincte ale numărului pictat este 21;&lt;br /&gt;
- cel mai mic număr natural cu cifre distincte format cu toate cifrele distincte ale numărului pictat este 12.&lt;br /&gt;
Deci suma celor două numere este 33 (21 + 12 = 33).&lt;br /&gt;
&lt;br /&gt;
Pentru al doilea ou, pictat cu numărul 33343:&lt;br /&gt;
- cel mai mare număr natural cu cifre distincte format cu toate cifrele distincte ale numărului pictat este 43;&lt;br /&gt;
- cel mai mic număr natural cu cifre distincte format cu toate cifrele distincte ale numărului pictat este 34.&lt;br /&gt;
Deci suma celor două numere este 77 (43 + 34 = 77).&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2:==&lt;br /&gt;
iepuras.in&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
2&lt;br /&gt;
123&lt;br /&gt;
191&lt;br /&gt;
iepuras.out&lt;br /&gt;
&lt;br /&gt;
22&lt;br /&gt;
39&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se rezolvă cerința 2. Sunt 2 ouă pictate (n = 2). Pe primul ou este scris numărul 123 iar pe al doilea ou numărul 191. Cifra de control a numărului 123 este 6 (1 + 2 + 3 = 6). Numărul de apariții aale cifrei 6 în scrierea a tuturor numerelor naturale mai mici sau egale cu 123 este 22. Cifra 6 apare în scrierea numerelor: 6, 16, 26, 36, 46, 56, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 76, 86, 96, 106, 116 de 22 de ori. Cifra de control a numărului 191 este 2. (1 + 9 + 1 = 11, 1 + 1 = 2). Numărul de apariții ale cifrei 2 în scrierea tuturor numerelor naturale mai mici sau egale cu 19 este 39. Cifra 2 apare în scrierea numerelor 2, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 42, 52, 62, 72, 82, 92, 102, 112, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 132, 142, 152, 162, 172, 182 de 39 de ori.&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def cifra_de_control(n):&lt;br /&gt;
    while n &amp;gt;= 10:&lt;br /&gt;
        s = 0&lt;br /&gt;
        while n:&lt;br /&gt;
            s += n % 10&lt;br /&gt;
            n //= 10&lt;br /&gt;
        n = s&lt;br /&gt;
    return n&lt;br /&gt;
def cel_mai_mic_si_cel_mai_mare_numar(cifre):&lt;br /&gt;
    cifre.sort()&lt;br /&gt;
    return numar(cifre), numar(cifre[::-1])&lt;br /&gt;
with open(&#039;iepuras.in&#039;) as fin, open(&#039;iepuras.out&#039;, &#039;w&#039;) as fout:&lt;br /&gt;
    cerinta = int(fin.readline())&lt;br /&gt;
    n = int(fin.readline())&lt;br /&gt;
    numere = [int(fin.readline()) for _ in range(n)]&lt;br /&gt;
    for nr in numere:&lt;br /&gt;
        cifre = [int(c) for c in str(nr)]&lt;br /&gt;
        if cerinta == 1:&lt;br /&gt;
            min_numar, max_numar = cel_mai_mic_si_cel_mai_mare_numar(cifre)&lt;br /&gt;
            fout.write(str(min_numar + max_numar) + &#039;\n&#039;)&lt;br /&gt;
        else:&lt;br /&gt;
            cifra_control = cifra_de_control(nr)&lt;br /&gt;
            aparitii = 0&lt;br /&gt;
            for i in range(1, nr+1):&lt;br /&gt;
                if cifra_de_control(i) == cifra_control:&lt;br /&gt;
                    aparitii += 1&lt;br /&gt;
            fout.write(str(aparitii) + &#039;\n&#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3066_-_Numere_27&amp;diff=6730</id>
		<title>3066 - Numere 27</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3066_-_Numere_27&amp;diff=6730"/>
		<updated>2023-05-20T13:09:03Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3066/numere27]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Într-o zi, Ioana a scris toate numerele naturale de N cifre fiecare îndeplinind, simultan, condițiile:&lt;br /&gt;
numărul format din primele două cifre este pătrat perfect;&lt;br /&gt;
a treia cifră este obligatoriu număr prim;&lt;br /&gt;
nu conține două cifre pare alăturate și nici două cifre impare alăturate.&lt;br /&gt;
De exemplu, numerele de trei cifre, scrise de Ioana, sunt: 163, 165, 167, 252, 363, 365, 367, 492, 812.&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Cunoscându-se numerele N și X, scrieți un program care determină:&lt;br /&gt;
1) câte numere de N cifre îndeplinesc cele trei condiții din enunț;&lt;br /&gt;
2) care este cel mai apropiat număr de X, diferit de X, care să îndeplinească cele trei condiții din enunț și care să aibă același număr de cifre ca X. Dacă există două astfel de numere, egal depărtate de X, se va afișa cel mai mic dintre ele.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare numere.in conţine pe prima linie un număr natural C. Numărul C poate avea doar valorile 1 sau 2. Pe a doua linie se află, în cazul primei cerințe, numărul N, iar în cazul celei de-a doua cerințe, numărul X.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă valoarea lui C este 1, se va rezolva doar cerința 1). În acest caz, fișierul de ieșire numere.out va conține pe prima linie un număr natural, reprezentând rezultatul determinat pentru prima cerință.&lt;br /&gt;
Dacă valoarea lui C este 2, se va rezolva doar cerința 2). În acest caz, fișierul de ieșire numere.out va conține pe prima linie un număr natural, reprezentând rezultatul determinat pentru cea de a doua cerință.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
3 ≤ N ≤ 29&lt;br /&gt;
100 ≤ X ≤ 20.000.000&lt;br /&gt;
Pentru rezolvarea primei cerințe se acordă 30 de puncte, iar pentru rezolvarea celei de a doua cerințe se acordă 70 de puncte.&lt;br /&gt;
==Exemplul 1:==&lt;br /&gt;
numere.in&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
4&lt;br /&gt;
numere.out&lt;br /&gt;
&lt;br /&gt;
45&lt;br /&gt;
==Explicație==&lt;br /&gt;
Numerele de patru cifre, scrise de Ioana, sunt: 1630, 1632, 1634, 1636, 1638, 1650, 1652, 1654, 1656, 1658, 1670, 1672, 1674, 1676, 1678, 2521, 2523, 2525, 2527, 2529, 3630, 3632, 3634, 3636, 3638, 3650, 3652, 3654, 3656, 3658, 3670, 3672, 3674, 3676, 3678, 4921, 4923, 4925, 4927, 4929, 8121, 8123, 8125, 8127, 8129.&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2:==&lt;br /&gt;
numere.in&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
200&lt;br /&gt;
numere.out&lt;br /&gt;
&lt;br /&gt;
167&lt;br /&gt;
==Explicație==&lt;br /&gt;
Cel mai apropiat număr de 200 este 167 (numerele de trei cifre, scrise de Ioana, sunt: 163, 165, 167, 252, 363, 365, 367, 492, 812).&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def verifica_numar(numar):&lt;br /&gt;
    # Verificăm dacă primele două cifre sunt pătrate perfecte&lt;br /&gt;
    primele_doua_cifre = numar // 100&lt;br /&gt;
    if not math.isqrt(primele_doua_cifre) ** 2 == primele_doua_cifre:&lt;br /&gt;
        return False&lt;br /&gt;
    &lt;br /&gt;
    # Verificăm dacă a treia cifră este primă&lt;br /&gt;
    a_treia_cifra = (numar // 10) % 10&lt;br /&gt;
    if a_treia_cifra not in {2, 3, 5, 7}:&lt;br /&gt;
        return False&lt;br /&gt;
    &lt;br /&gt;
    # Verificăm dacă nu conține două cifre pare sau două cifre impare alăturate&lt;br /&gt;
    ultima_cifra_impara = False&lt;br /&gt;
    ultima_cifra_para = False&lt;br /&gt;
    while numar &amp;gt; 0:&lt;br /&gt;
        cifra = numar % 10&lt;br /&gt;
        if cifra % 2 == 0:&lt;br /&gt;
            if ultima_cifra_para:&lt;br /&gt;
                return False&lt;br /&gt;
            ultima_cifra_para = True&lt;br /&gt;
            ultima_cifra_impara = False&lt;br /&gt;
        else:&lt;br /&gt;
            if ultima_cifra_impara:&lt;br /&gt;
                return False&lt;br /&gt;
            ultima_cifra_impara = True&lt;br /&gt;
            ultima_cifra_para = False&lt;br /&gt;
        numar //= 10&lt;br /&gt;
    &lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Citim datele de intrare&lt;br /&gt;
c = int(input())&lt;br /&gt;
if c == 1:&lt;br /&gt;
    n = int(input())&lt;br /&gt;
    # Numărăm câte numere de n cifre îndeplinesc condițiile&lt;br /&gt;
    contor = 0&lt;br /&gt;
    for i in range(10 ** (n-1), 10 ** n):&lt;br /&gt;
        if verifica_numar(i):&lt;br /&gt;
            contor += 1&lt;br /&gt;
    # Afisăm rezultatul&lt;br /&gt;
    print(contor)&lt;br /&gt;
&lt;br /&gt;
elif c == 2:&lt;br /&gt;
    x = int(input())&lt;br /&gt;
    n = len(str(x))&lt;br /&gt;
    # Căutăm cel mai apropiat număr diferit de x care îndeplinește condițiile&lt;br /&gt;
    gasit = False&lt;br /&gt;
    for i in range(x-1, 0, -1):&lt;br /&gt;
        if len(str(i)) != n:&lt;br /&gt;
            break&lt;br /&gt;
        if verifica_numar(i):&lt;br /&gt;
            print(i)&lt;br /&gt;
            gasit = True&lt;br /&gt;
            break&lt;br /&gt;
    if not gasit:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2978_-_Aur&amp;diff=6729</id>
		<title>2978 - Aur</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2978_-_Aur&amp;diff=6729"/>
		<updated>2023-05-20T13:07:52Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2978/aur]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
După ce au mers împreună prin lume, Păcală și Tândală au strâns o căruță plină de bănuți de aur, iar acum îi răstoarnă pe toți în curtea casei și îi împart în N grămezi. Păcală numără bănuții din fiecare grămadă și îi dictează lui Tândală N numere naturale pe care acesta trebuie să le scrie în ordine pe o tăbliță. După ore bune de muncă, Păcală constată că Tândală a scris pe un singur rând, în ordine, de la stânga la dreapta, toate numerele dictate de el, dar lipite unul de altul. Acum pe tăbliță e doar un șir lung de cifre. Ce să facă Păcală acum?&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Cunoscând cele N numere naturale dictate de Păcală, scrieți un program care să determine:&lt;br /&gt;
1. numărul cifrelor scrise pe tăbliță de Tândală;&lt;br /&gt;
2. ce-a de-a K-a cifră de pe tăbliță, în ordine de la stânga la dreapta;&lt;br /&gt;
3. cel mai mare număr ce se poate forma cu exact P cifre alăturate de pe tăbliță, considerate în ordine de la stânga la dreapta.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare aur.in conţine:&lt;br /&gt;
- pe prima linie un număr natural C care reprezintă numărul cerinței și poate avea valorile 1, 2 sau 3.&lt;br /&gt;
- pe cea de-a doua linie un număr natural N dacă cerința este 1, sau două numere naturale N și K (despărțite printr-un spațiu) dacă cerința este 2, sau două numere naturale N și P (despărțite printr-un spațiu) dacă cerința este 3.&lt;br /&gt;
- pe cea de-a treia linie, N numere naturale despărțite prin câte un spațiu, ce reprezintă, în ordine, numerele pe care Păcală i le dictează lui Tândală.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fișierul de ieșire aur.out va conține pe prima linie un singur număr natural ce reprezintă rezultatul determinat conform fiecărei cerințe.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ N ≤ 100.000 și 1 ≤ K ≤ 900.000;&lt;br /&gt;
Se garantează ca există cel puțin K cifre scrise pe tăbliță.&lt;br /&gt;
1 ≤ P ≤ 18; Se garantează ca există cel puțin P cifre scrise pe tăbliță.&lt;br /&gt;
toate numere dictate de Păcală sunt nenule și au cel mult 9 cifre fiecare;&lt;br /&gt;
Pentru rezolvarea corectă a primei cerințe se acordă 20 de puncte, pentru rezolvarea corectă a celei de-a doua cerințe se acordă 30 de puncte, iar pentru rezolvarea corectă a celei de-a treia cerințe se acordă 40 de puncte.&lt;br /&gt;
În concurs s-au acordat 10 puncte din oficiu. Aici se acordă pentru exemplele din enunț.&lt;br /&gt;
==Exemplul 1:==&lt;br /&gt;
aur.in&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
7&lt;br /&gt;
25 9 13 459 2 79 9&lt;br /&gt;
aur.out&lt;br /&gt;
&lt;br /&gt;
12&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se rezolvă cerința 1. Tândală a scris pe tăbliță: 259134592799. Numărul cifrelor scrise de Tândală este 12.&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2:==&lt;br /&gt;
aur.in&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
7 10&lt;br /&gt;
25 9 13 459 2 79 9&lt;br /&gt;
aur.out&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se rezolvă cerința 2. N are valoarea 7 și K are valoarea 10. Pe tăbliță este scris: 259134592799, cea de-a zecea cifră este 7.&lt;br /&gt;
&lt;br /&gt;
==Exemplul 3:==&lt;br /&gt;
aur.in&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
7 4&lt;br /&gt;
25 9 13 459 2 79 9&lt;br /&gt;
aur.out&lt;br /&gt;
&lt;br /&gt;
9279&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se rezolvă cerința 3. N are valoarea 7 și P are valoarea 4. Tândală a scris pe tăbliță: 259134592799. Cel mai mare număr format din patru cifre este 9279.&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# Citim cerința și datele de intrare&lt;br /&gt;
cerinta = int(input())&lt;br /&gt;
n, m = map(int, input().split())&lt;br /&gt;
numere = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
if cerinta == 1:&lt;br /&gt;
    # Cerința 1: numărul de cifre din șirul de numere&lt;br /&gt;
    print(len(&amp;quot;&amp;quot;.join(map(str, numere))))&lt;br /&gt;
elif cerinta == 2:&lt;br /&gt;
    # Cerința 2: cifra de pe poziția m&lt;br /&gt;
    cifra_curenta = 0&lt;br /&gt;
    for numar in numere:&lt;br /&gt;
        for cifra in str(numar):&lt;br /&gt;
            cifra_curenta += 1&lt;br /&gt;
            if cifra_curenta == m:&lt;br /&gt;
                print(cifra)&lt;br /&gt;
                break&lt;br /&gt;
        if cifra_curenta == m:&lt;br /&gt;
            break&lt;br /&gt;
elif cerinta == 3:&lt;br /&gt;
    # Cerința 3: cel mai mare număr format din P cifre&lt;br /&gt;
    p = m&lt;br /&gt;
    numar_maxim = 0&lt;br /&gt;
    for i in range(len(numere) - p + 1):&lt;br /&gt;
        numar_curent = int(&amp;quot;&amp;quot;.join(map(str, numere[i:i+p])))&lt;br /&gt;
        numar_maxim = max(numar_maxim, numar_curent)&lt;br /&gt;
    print(numar_maxim)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2940_-_Cifra_4&amp;diff=6728</id>
		<title>2940 - Cifra 4</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2940_-_Cifra_4&amp;diff=6728"/>
		<updated>2023-05-20T13:06:47Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2940/cifra4]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Pentru reprezentarea numerelor s-a decis să nu se mai folosească cifra C. Astfel din șirul numerelor naturale se vor elimina toate numerele care conțin cifra C. Notăm noul șir cu S.&lt;br /&gt;
1) Să se determine al N-lea număr din șirul S.&lt;br /&gt;
2) Se dau Y și Z, două numere naturale din șirul S. Să se determine numărul de numere naturale eliminate dintre Y și Z.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare cifra4.in conține pe primul rând numărul T reprezentând tipul cerinței.&lt;br /&gt;
Dacă T=1, atunci pe al doilea rând vor fi scrise, separate prin spațiu, cifra C și numărul N.&lt;br /&gt;
Dacă T=2, atunci pe al doilea rând vor fi scrise separate prin spațiu cifra C și două numere naturale Y și Z.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
În fișierul de ieșire cifra4.out se va scrie pe primul rând un singur număr natural conform tipului cerinței.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ N ≤ 10^13&lt;br /&gt;
0 ≤ C ≤ 9&lt;br /&gt;
1 ≤ Y ≤ 10^13&lt;br /&gt;
1 ≤ Z ≤ 10^13&lt;br /&gt;
pentru 20% din teste N va avea cel mult 5 cifre&lt;br /&gt;
pentru 20% din teste Y și Z vor avea cel mult 6 cifre&lt;br /&gt;
==Exemplul 1:==&lt;br /&gt;
cifra4.in&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
0 11&lt;br /&gt;
cifra4.out&lt;br /&gt;
&lt;br /&gt;
12&lt;br /&gt;
==Explicație==&lt;br /&gt;
Al 11 număr din șirul S care nu conţine cifra 0 este 12.&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2:==&lt;br /&gt;
cifra4.in&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
1 3 20&lt;br /&gt;
cifra4.out&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
==Explicație==&lt;br /&gt;
Numerele eliminate din intervalul [3,20] sunt 10, 11, 12, 13, 14, 15, 16, 17, 18, 19.&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def contains_c(number, c):&lt;br /&gt;
    # Verifica daca numarul contine cifra c&lt;br /&gt;
    return str(c) in str(number)&lt;br /&gt;
&lt;br /&gt;
def generate_s(c, n=None, z=None):&lt;br /&gt;
    # Generam șirul S și returnăm al N-lea număr sau numărul de numere eliminate din intervalul [n, z]&lt;br /&gt;
    s = []&lt;br /&gt;
    i = 1&lt;br /&gt;
    while True:&lt;br /&gt;
        if not contains_c(i, c):&lt;br /&gt;
            s.append(i)&lt;br /&gt;
            if len(s) == n:&lt;br /&gt;
                return s[-1]&lt;br /&gt;
            if z is not None and i &amp;gt; z:&lt;br /&gt;
                break&lt;br /&gt;
        i += 1&lt;br /&gt;
&lt;br /&gt;
    if n is None:&lt;br /&gt;
        return len([num for num in range(n, z+1) if contains_c(num, c)])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2099_-_Unu_Patru&amp;diff=6727</id>
		<title>2099 - Unu Patru</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2099_-_Unu_Patru&amp;diff=6727"/>
		<updated>2023-05-20T13:06:03Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2099/unupatru]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Fiind dat un număr natural, efectuând suma pătratelor cifrelor numărului dat, apoi repetând însumarea pătratelor cifrelor pentru numerele obţinute ca rezultat, la un moment dat se obţine una dintre valorile 1 sau 4.&lt;br /&gt;
De exemplu, pentru numărul natural 89, se obţin, pe rând, valorile 145, 42, 20, 4 iar pentru numărul natural 86, valorile rezultate sunt 100, 1.&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Dat un set de numere naturale, să se determine pentru fiecare dintre ele, numărul de repetări ale calculului sumei pătratelor cifrelor până la obţinerea rezultatului 1 sau 4.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fişierul de intrare unupatru.in conţine pe prima linie o valoare naturală n, care reprezintă numărul de numere naturale care vor fi testate. Pe linia a doua a fişierului de intrare se găsesc cele n numere naturale, separate prin câte un spaţiu.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fişierul de ieşire unupatru.out conţine pe prima linie n numere naturale, care indică, în ordinea din fişierul de intrare, numărul de repetări ale calculului pentru fiecare dintre cele n numere din fişierul de intrare.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 &amp;lt;= n &amp;lt;= 10&lt;br /&gt;
1 &amp;lt;= numerele testate &amp;lt;= 1018&lt;br /&gt;
==Exemplul 1:==&lt;br /&gt;
unupatru.in&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
89 68&lt;br /&gt;
unupatru.out&lt;br /&gt;
&lt;br /&gt;
4 2&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se obţin, pe rând, pentru 89, valorile 145 42 20 4&lt;br /&gt;
Se obţin, pe rând, pentru 68, valorile 100 1&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2:==&lt;br /&gt;
unupatru.in&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
33 17 638&lt;br /&gt;
unupatru.out&lt;br /&gt;
&lt;br /&gt;
10 9 5&lt;br /&gt;
==Explicație==&lt;br /&gt;
Valorile obţinute pentru cele 3 valori sunt:&lt;br /&gt;
18 65 61 37 58 89 145 42 20 4&lt;br /&gt;
50 25 29 85 89 145 42 20 4&lt;br /&gt;
109 82 68 100 1&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def sum_of_squares(n):&lt;br /&gt;
    # Calculează suma pătratelor cifrelor numărului n&lt;br /&gt;
    return sum(int(digit)**2 for digit in str(n))&lt;br /&gt;
&lt;br /&gt;
def count_iterations(n):&lt;br /&gt;
    # Calculează numărul de repetări necesare pentru a ajunge la 1 sau 4&lt;br /&gt;
    if n == 1 or n == 4:&lt;br /&gt;
        return 1&lt;br /&gt;
    else:&lt;br /&gt;
        return 1 + count_iterations(sum_of_squares(n))&lt;br /&gt;
&lt;br /&gt;
# Citim numărul de teste&lt;br /&gt;
with open(&amp;quot;unupatru.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
    n = int(f.readline())&lt;br /&gt;
&lt;br /&gt;
# Citim numerele din fișier și le prelucrăm&lt;br /&gt;
with open(&amp;quot;unupatru.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
    numbers = list(map(int, f.readline().split()))&lt;br /&gt;
&lt;br /&gt;
# Calculăm numărul de repetări pentru fiecare număr și scriem rezultatele în fișier&lt;br /&gt;
with open(&amp;quot;unupatru.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
    for number in numbers:&lt;br /&gt;
        f.write(str(count_iterations(number)) + &amp;quot; &amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2096_-_XYZ&amp;diff=6726</id>
		<title>2096 - XYZ</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2096_-_XYZ&amp;diff=6726"/>
		<updated>2023-05-20T13:05:22Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2096/xyz]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Un număr natural se numeşte “număr xyz” dacă are x cifre, prima cifră a sa este egală cu y şi următoarele cifre sunt egale cu z.&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Scrieţi un program care să determine “numărul xyz” pentru x y z numere naturale date.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fişierul de intrare xyz.in are pe prima sa linie 3 numere naturale x y z separate prin spatii.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fişierul de ieşire xyz.out va conţine, pe prima linie, “numărul xyz” determinat.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
  • 1 ≤ x, y ≤ 9&lt;br /&gt;
  • 0 ≤ z ≤ 9&lt;br /&gt;
&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
xyz.in&lt;br /&gt;
&lt;br /&gt;
5 4 3&lt;br /&gt;
xyz.out&lt;br /&gt;
&lt;br /&gt;
43333&lt;br /&gt;
==Explicație==&lt;br /&gt;
Numărul are 5 cifre, prima cifră este 4 iar celelalte cifre sunt egale cu 3.&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# citire date de intrare&lt;br /&gt;
with open(&amp;quot;xyz.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
    x, y, z = f.readline().split()&lt;br /&gt;
&lt;br /&gt;
# construire număr&lt;br /&gt;
numar = y + z*(int(x)-1)&lt;br /&gt;
&lt;br /&gt;
# scriere rezultat in fisierul de ieșire&lt;br /&gt;
with open(&amp;quot;xyz.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
    f.write(numar)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2130_-_Robot_4&amp;diff=6725</id>
		<title>2130 - Robot 4</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2130_-_Robot_4&amp;diff=6725"/>
		<updated>2023-05-20T13:04:26Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2130/robot4]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Vlad a inventat un nou joc. Jocul conţine N standuri aşezate în linie dreaptă. Fiecare stand are o etichetă pe care este scris un număr natural. Eticheta este considerată corectă dacă numărul îndeplineşte următoarele două condiţii:&lt;br /&gt;
conține atât cifre pare, cât și cifre impare;&lt;br /&gt;
începe cu cifrele impare așezate în ordine crescătoare, urmate de cifrele pare în ordine descrescătoare.&lt;br /&gt;
De exemplu, eticheta 137860 este corectă, dar etichetele 23541, 135, 64 şi 3146 nu sunt corecte.&lt;br /&gt;
Pentru jocul său, Vlad a construit robotul reparator care ştie să verifice numere şi să le repare, dacă este necesar. Robotul reparator se deplasează în linie dreaptă și se opreşte pe rând la fiecare dintre cele N standuri. La fiecare stand, robotul verifică eticheta şi dacă nu este corectă, o „repară”. Pentru a repara eticheta, robotul aranjează cifrele impare în ordine crescătoare, apoi, în continuare, aranjează cifrele pare în ordine descrescătoare; dacă eticheta nu conţine nicio cifră impară, cea mai mare cifră pară o înlocuieşte cu 9 ; dacă eticheta nu conţine nicio cifră pară, cea mai mică cifră impară o înlocuieşte cu 0 . Deplasarea de la un stand la altul durează t secunde, verificarea etichetei unui stand durează v secunde, iar repararea acesteia durează r secunde. Cursa robotului se încheie după ce robotul a verificat toate cele N standuri şi a reparat etichetele incorecte.&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Scrieţi un program care citeşte numărul N de standuri, timpul (ora h , minutul m , secunda s) când robotul ajunge la primul stand, timpii t , v și r cu semnificaţia din enunţ şi etichetele standurilor și care rezolvă următoarele cerințe:&lt;br /&gt;
calculează şi afişează timpul (ora, minutul şi secunda) când robotul a încheiat verificarea tuturor celor N standuri şi repararea etichetelor incorecte;&lt;br /&gt;
repară (unde este necesar) etichetele standurilor şi afişează etichetele celor N standuri la final.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare robot4.in conține pe prima linie numărul C , reprezentând cerinţa care urmează să fie rezolvată (1 sau 2). Pe linia a doua se află numerele naturale N , h , m , s , iar pe linia a treia numerele naturale t , v , r , cu semnificaţia din enunţ. Numerele aflate pe aceeaşi linie sunt separate prin câte un spaţiu. Pe următoarele N linii se află etichetele standurilor, în ordinea aşezării acestora, câte o etichetă pe o linie.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă C=1, fişierul de ieşire robot4.out va conţine o singură linie pe care vor fi scrise 3 numere naturale separate prin câte un spaţiu hf mf sf, reprezentând ora, minutul şi respectiv secunda la care robotul termină repararea.&lt;br /&gt;
Dacă C=2, fişierul de ieşire robot4.out va conţine N linii pe care vor fi scrise etichetele standurilor, în ordinea aşezării acestora, după ce robotul a încheiat verificarea şi repararea, câte o etichetă pe o linie.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
2 ≤ N ≤ 500&lt;br /&gt;
Etichetele standurilor au cel puțin două și cel mult nouă cifre.&lt;br /&gt;
Robotul începe și încheie repararea în aceeaşi zi; 0 ≤ h, hf &amp;lt; 24 ; 0 ≤ m, mf, s, sf &amp;lt; 60&lt;br /&gt;
Pentru rezolvarea corectă a cerinţei 1 se acordă 40 de puncte; pentru rezolvarea corectă a cerinţei 2 se acordă 60 de puncte.&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
robot4.in&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
3 11 20 50&lt;br /&gt;
7 5 15&lt;br /&gt;
376572&lt;br /&gt;
3564&lt;br /&gt;
123&lt;br /&gt;
robot4.out&lt;br /&gt;
&lt;br /&gt;
11 21 49&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
robot4.in&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
3 11 20 50&lt;br /&gt;
7 5 15&lt;br /&gt;
376572&lt;br /&gt;
3564&lt;br /&gt;
113&lt;br /&gt;
robot4.out&lt;br /&gt;
&lt;br /&gt;
357762&lt;br /&gt;
3564&lt;br /&gt;
130&lt;br /&gt;
&lt;br /&gt;
==Explicații==&lt;br /&gt;
Pentru exemplul 1: Cerinţa este 1 . Există 3 standuri. Pentru simplitate notăm cu h:m:s ora h ,@m@ minute şi s&lt;br /&gt;
secunde. La primul stand robotul ajunge la ora 11:20:50. Primul stand are eticheta 376572, care este incorectă, deci robotul o repară. Aici va petrece 5 secunde pentru verificare şi 15 secunde pentru reparare, deci va pleca de aici la ora 11:21:10. La al doilea stand va ajunge la ora 11:21:17; eticheta sa 3564 este corectă deci robotul nu o va modifica; aici va petrece 5 secunde pentru verificare şi pleacă la ora 11:21:22. La al treilea stand va ajunge la ora 11:21:29. Al treilea stand are eticheta incorectă 123, robotul o repară, deci aici va petrece 5+15=20 secunde şi ora la care încheie cursa este 11:21:49.&lt;br /&gt;
&lt;br /&gt;
Pentru exemplul 2: Cerinţa este 2 . Există 3 standuri. Primul stand are eticheta 376572, care este incorectă, robotul o repară şi aceasta devine 357762. La al doilea stand eticheta 3564 este corectă. deci robotul nu o va modifica. Al treilea stand are eticheta incorectă 113, robotul o repară şi devine 130.&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0623_-_Numere_3&amp;diff=6724</id>
		<title>0623 - Numere 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0623_-_Numere_3&amp;diff=6724"/>
		<updated>2023-05-20T13:03:41Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/623/numere3]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Având o pasiune pentru numere, Răzvan a inventat un nou joc pentru două persoane. Regulile jocului sunt simple: se aleg trei numere naturale a, b şi c astfel încât a&amp;lt;b&amp;lt;c. La fiecare pas, primul jucător adună la a suma cifrelor lui a, iar cel de-al doilea jucător scade din c suma cifrelor lui c, la pasul următor fiind luate în considerare noile valori obţinute pentru a şi c. Jocul se termină când, la un anumit pas, a devine mai mare sau egal decât b, caz în care primul jucător este declarat câştigător, sau când c devine mai mic sau egal cu b, situaţie în care câştigă al doilea jucător. Dacă la un pas se îndeplinesc ambele codiţii, jocul se termină la egalitate.&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Cunoscând a, b şi c se cere:&lt;br /&gt;
&lt;br /&gt;
a) Suma cifrelor celor trei numere.&lt;br /&gt;
b) Valorile numerelor a şi c la fiecare pas al jocului, precum şi câştigătorul jocului.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fişierul de intrare numere3.in conţine pe prima linie un număr natural p. Pentru toate testele de intrare, numărul p poate avea doar valoarea 1 sau valoarea 2.&lt;br /&gt;
&lt;br /&gt;
Pe a doua linie se găsesc cele trei numere naturale a, b şi c descrise în enunţ.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Dacă valoarea lui p este 1, se va rezolva numai punctul a) din cerință.&lt;br /&gt;
&lt;br /&gt;
În acest caz, în fişierul de ieşire numere3.out se va scrie un singur număr natural s, reprezentând suma cifrelor lui a, b şi c.&lt;br /&gt;
&lt;br /&gt;
Dacă valoarea lui p este 2, se va rezolva numai punctul b) din cerință.&lt;br /&gt;
&lt;br /&gt;
În acest caz, fişierul de ieşire numere3.out va conține mai multe linii pe care se vor găsi câte două numere naturale separate printr-un spaţiu: valorile lui a şi c la fiecare pas al jocului. Pe ultima linie se va găsi 1, dacă primul jucător câştigă, 2 dacă cel de-al doilea jucător câştigă sau 0 dacă jocul se termină la egalitate.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
0 &amp;lt; a &amp;lt; b &amp;lt; c &amp;lt; 10.000.000&lt;br /&gt;
Pentru rezolvarea corectă a primei cerinţe se acordă 20 de puncte, iar pentru cerința a doua se acordă 80 de puncte.&lt;br /&gt;
==Exemplul 1:==&lt;br /&gt;
numere3.in&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
25 51 75&lt;br /&gt;
numere3.out&lt;br /&gt;
&lt;br /&gt;
25&lt;br /&gt;
==Explicație==&lt;br /&gt;
p = 1&lt;br /&gt;
2+5+5+1+7+5=25&lt;br /&gt;
&lt;br /&gt;
Atenție! Pentru acest test se rezolvă doar cerința a)&lt;br /&gt;
==Exemplul 2:==&lt;br /&gt;
numere3.in&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
25 51 75&lt;br /&gt;
numere3.out&lt;br /&gt;
&lt;br /&gt;
25 75&lt;br /&gt;
32 63&lt;br /&gt;
37 54&lt;br /&gt;
47 45&lt;br /&gt;
2&lt;br /&gt;
==Explicație==&lt;br /&gt;
p = 2&lt;br /&gt;
&lt;br /&gt;
La cel de-al treilea pas, c devine mai mic decât b, jocul fiind câștigat de către al doilea jucător.&lt;br /&gt;
&lt;br /&gt;
Atenție! Pentru acest test se rezolvă doar cerința b).&lt;br /&gt;
&lt;br /&gt;
==Exemplul 3:==&lt;br /&gt;
numere3.in&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
25 46 75&lt;br /&gt;
numere3.out&lt;br /&gt;
&lt;br /&gt;
25 75&lt;br /&gt;
32 63&lt;br /&gt;
37 54&lt;br /&gt;
47 45&lt;br /&gt;
0&lt;br /&gt;
==Explicație==&lt;br /&gt;
p = 2&lt;br /&gt;
&lt;br /&gt;
La cel de-al treilea pas, a devine mai mare decât b, dar și c devine mai mic decât b. Astfel, jocul se termină la egalitate.&lt;br /&gt;
&lt;br /&gt;
Atenție! Pentru acest test se rezolvă doar cerința b).&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def sum_of_digits(num):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    Calculează suma cifrelor unui număr dat.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    return sum(int(digit) for digit in str(num))&lt;br /&gt;
&lt;br /&gt;
# Citirea datelor de intrare&lt;br /&gt;
p = int(input())&lt;br /&gt;
a, b, c = map(int, input().split())&lt;br /&gt;
&lt;br /&gt;
if p == 1:&lt;br /&gt;
    # Rezolvarea cerinței a)&lt;br /&gt;
    print(sum_of_digits(a) + sum_of_digits(b) + sum_of_digits(c))&lt;br /&gt;
elif p == 2:&lt;br /&gt;
    # Rezolvarea cerinței b)&lt;br /&gt;
    winner = 0 # Câștigătorul jocului (0 - egalitate, 1 - primul jucător, 2 - al doilea jucător)&lt;br /&gt;
    while a &amp;lt; b and c &amp;gt; b:&lt;br /&gt;
        # Adună suma cifrelor lui a&lt;br /&gt;
        a += sum_of_digits(a)&lt;br /&gt;
        # Scade suma cifrelor lui c&lt;br /&gt;
        c -= sum_of_digits(c)&lt;br /&gt;
        print(a, c)&lt;br /&gt;
    if a &amp;gt;= b:&lt;br /&gt;
        winner = 1&lt;br /&gt;
    elif c &amp;lt;= b:&lt;br /&gt;
        winner = 2&lt;br /&gt;
    print(winner)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0140_-_Putere&amp;diff=6723</id>
		<title>0140 - Putere</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0140_-_Putere&amp;diff=6723"/>
		<updated>2023-05-20T13:02:59Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/140/putere]&lt;br /&gt;
&lt;br /&gt;
==Cerinţă==&lt;br /&gt;
Scrieţi un program, care pentru două numere naturale date m şi n determină:&lt;br /&gt;
&lt;br /&gt;
a) puterea p definită în enunţ;&lt;br /&gt;
b) suma s definită în enunţ.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fişierul de intrare putere.in conţine pe prima linie numerele m şi n, separate între ele printr-un spaţiu.&lt;br /&gt;
&lt;br /&gt;
==Date de ieşire==&lt;br /&gt;
Fişierul de ieşire putere.out va conţine, pe prima linie p şi pe a doua linie s.&lt;br /&gt;
&lt;br /&gt;
==Restricţii şi precizări==&lt;br /&gt;
0 &amp;lt;m,n&amp;lt; 2000000001&lt;br /&gt;
Toate cifrele lui n sunt nenule.&lt;br /&gt;
m şi n au acelaşi număr de cifre.&lt;br /&gt;
==Exemplu==&lt;br /&gt;
putere.in&lt;br /&gt;
&lt;br /&gt;
624 253&lt;br /&gt;
putere.out&lt;br /&gt;
&lt;br /&gt;
64&lt;br /&gt;
132	&lt;br /&gt;
==Explicaţie==&lt;br /&gt;
m=624, n=253.&lt;br /&gt;
p= 43 , adică p=64 s= 43 + 25 + 62 , adică s=132.&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
with open(&#039;putere.in&#039;, &#039;r&#039;) as f_in, open(&#039;putere.out&#039;, &#039;w&#039;) as f_out:&lt;br /&gt;
    m, n = map(int, f_in.readline().split())&lt;br /&gt;
    p = int(str(m)[-1])&lt;br /&gt;
    s = p&lt;br /&gt;
    while m &amp;gt; 0:&lt;br /&gt;
        p = (p * n) % 10&lt;br /&gt;
        s += p&lt;br /&gt;
        m //= 10&lt;br /&gt;
        n = int(str(n * n)[-len(str(m)):])&lt;br /&gt;
    f_out.write(str(p) + &#039;\n&#039;)&lt;br /&gt;
    f_out.write(str(s) + &#039;\n&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1045_-_Imprimanta&amp;diff=6722</id>
		<title>1045 - Imprimanta</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1045_-_Imprimanta&amp;diff=6722"/>
		<updated>2023-05-20T13:02:21Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1045/imprimanta]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Cif-Oji6 este o imprimantă matriceală numită şi imprimantă cu ace, deoarece tipărirea se realizează prin impactul acelor capului de imprimare pe o bandă cu tuş.&lt;br /&gt;
Acele sunt aranjate într-o grilă dreptunghiulară formată din 5 rânduri de ace, pe fiecare rând aflându-se la distanţe egale câte 3 ace, aşa cum se observă în figura alăturată.&lt;br /&gt;
Prin acţionarea diferitelor combinaţii de ace din grilă, se defineşte forma fiecărei cifre ce permite tipărirea acesteia prin puncte, în felul următor:&lt;br /&gt;
De exemplu, cifra 2 va fi tipărită prin 11 puncte ca rezultat al acţionării a 11 ace din grilă: din primul rând de ace al grilei se vor acţiona toate cele 3 ace, din următorul rând doar acul din dreapta, apoi de pe următorul rând toate cele 3 ace, apoi acul din stânga de pe penultimul rând iar din ultimul rând toate cele 3 ace.&lt;br /&gt;
&lt;br /&gt;
==Cerințe==&lt;br /&gt;
a) Ştiind că imprimanta Cif-Oji6 a tipărit numărul N, determinaţi care este cea mai mare cifră a numărul N pentru care s-a acţionat un număr minim de ace ale grilei.&lt;br /&gt;
b) Ştiind că imprimanta mai are tuş pe bandă doar pentru imprimarea a K puncte, determinaţi cel mai mare număr natural ce poate fi tipărit prin exact K puncte.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare imprimanta.in conține pe prima linie două numere naturale N şi K separate printr-un spaţiu, unde N reprezintă numărul tipărit de imprimantă iar K numărul de puncte pentru care imprimanta mai are tuş.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fișierul de ieșire imprimanta.out va conține:&lt;br /&gt;
&lt;br /&gt;
pe prima linie un singur număr natural ce reprezintă cea mai mare cifră a numărul N pentru care s-a acţionat un număr minim de ace ale grilei.&lt;br /&gt;
pe cea de-a doua linie a fişierului se va scrie cel mai mare număr natural ce poate fi tipărit prin K puncte.&lt;br /&gt;
Restricții și precizări&lt;br /&gt;
10 ≤ N ≤ 1015&lt;br /&gt;
14 ≤ K ≤ 100000&lt;br /&gt;
Pentru rezolvarea corectă a cerinţei a) se acordă 30% din punctajul fiecărui test iar pentru rezolvarea corectă a cerinţei b) se acordă 70% din punctajul fiecărui test.&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
imprimanta.in&lt;br /&gt;
&lt;br /&gt;
2852 16&lt;br /&gt;
imprimanta.out&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
74&lt;br /&gt;
==Explicație==&lt;br /&gt;
Pentru tipărirea cifrei 2 s-au acţionat 11 ace, pentru cifra 8 s-au acţionat 13 ace iar pentru cifra 5 tot 11 ace. Numărul minim de ace pentru tipărirea unei cifre este 11.&lt;br /&gt;
5 este cea mai mare cifră a numărului 2852 ce a fost tipărită cu 11 ace.&lt;br /&gt;
Cel mai mare număr natural ce poate fi tipărit prin 16 puncte este 74&lt;br /&gt;
7 puncte (pentru cifra 7) + 9 puncte (pentru cifra 4) = 16 puncte.&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
imprimanta.in&lt;br /&gt;
&lt;br /&gt;
88 25&lt;br /&gt;
imprimanta.out&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
11111&lt;br /&gt;
==Explicație==&lt;br /&gt;
Pentru tipărirea cifrei 8 s-au acţionat 13 ace.&lt;br /&gt;
Cel mai mare număr natural ce poate fi tipărit prin 25 de puncte este 11111&lt;br /&gt;
5* (5 puncte pentru cifra 1) = 25 puncte.&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def count_points(n, digits):&lt;br /&gt;
    points = 0&lt;br /&gt;
    for d in str(n):&lt;br /&gt;
        points += digits[d]&lt;br /&gt;
    return points&lt;br /&gt;
def find_min_digit(digits):&lt;br /&gt;
    min_digit = 9&lt;br /&gt;
    min_ace = float(&#039;inf&#039;)&lt;br /&gt;
    for i in range(9, -1, -1):&lt;br /&gt;
        if digits[i] &amp;lt;= min_ace:&lt;br /&gt;
            min_ace = digits[i]&lt;br /&gt;
            min_digit = i&lt;br /&gt;
        if digits[i] &amp;gt; min_ace:&lt;br /&gt;
            break&lt;br /&gt;
    return min_digit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1053_-_Cladiri&amp;diff=6721</id>
		<title>1053 - Cladiri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1053_-_Cladiri&amp;diff=6721"/>
		<updated>2023-05-20T13:01:32Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1053/cladiri]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Având mai multe cuburi la dispoziţie, Crina şi Rareş au hotărât să construiască clădiri prin alipirea a două sau mai multor turnuri. Turnurile au fost obţinute prin aşezarea cuburilor unul peste celălalt. Înălţimea unui turn este dată de numărul de cuburi din care este format.&lt;br /&gt;
Clădirile construite au fost aşezate în linie, una lângă alta formând astfel o stradă, pe care cei doi copii se vor plimba.&lt;br /&gt;
Pentru numerotarea clădirilor Crina şi Rareş au stabilit următoarele reguli:&lt;br /&gt;
Crina porneşte dintr-un capăt al străzii, iar Rareş din celălalt capăt al acesteia; fiecare dintre ei traversează strada complet, trecând prin dreptul fiecărei clădiri&lt;br /&gt;
Crina lipeşte pe fiecare clădire câte un bileţel pe care scrie înălţimea turnurilor din care aceasta este construită, în ordinea în care ea le vede când trece prin dreptul lor (de exemplu, pentru imaginea de mai sus, Crina va lipi pe prima clădire un bileţel pe care va scrie numărul 3112 deoarece, primul turn e format din 3 cuburi, următoarele două turnuri ale acestei clădiri sunt formate din câte un cub iar cel de-al patrulea turn e format din 2 cuburi);&lt;br /&gt;
Rareş va proceda la fel, dar începe plimbarea din celalalt capăt al străzii. În exemplul din imagine, el va lipi pe prima clădire pe care o întâlneşte un bileţel pe care scrie numărul 2121.&lt;br /&gt;
La finalul plimbării, Crina şi Rareş îşi dau seama că există clădiri pe care au lipit amândoi bileţele cu numere identice.&lt;br /&gt;
==Cerinţe==&lt;br /&gt;
a) Care este înălţimea celui mai înalt turn şi care este numărul clădirilor care au în construcţia lor un astfel de turn?&lt;br /&gt;
b) Care este numărul clădirilor pe care cei doi copii au lipit bileţele cu numere identice?&lt;br /&gt;
c) Care este cel mai mic număr de cuburi necesar pentru a completa clădirile astfel încât, pe fiecare clădire, bileţelul pe care îl va lipi Crina să conţină acelaşi număr cu cel pe care îl va lipi Rareş? Cuburile din care a fost construită iniţial clădirea nu se pot muta.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare cladiri.in conține pe prima linie un număr natural N, reprezentând numărul clădirilor de pe stradă, iar de pe următoarele N linii câte un număr natural cu toate cifrele nenule, reprezentând numerele scrise de Crina pe bileţele, în ordinea în care au fost lipite de ea pe clădiri.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
În fișierul de ieșire cladiri.out se vor scrie pe prima linie două numere naturale despărţite printr-un singur spaţiu ce reprezintă, în ordine, valorile cerute la cerinţa a). Pe cea de-a doua linie a fişierului se va scrie un număr natural, mai mare sau egal cu zero, reprezentând răspunsul la cerinţa b). Pe cea de-a treia linie a fişierului se va scrie un număr natural, mai mare sau egal cu zero, reprezentând răspunsul la cerinţa c).&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ n ≤ 10000&lt;br /&gt;
Fiecare clădire este alcătuită din cel mult 9 turnuri, iar înălţimea fiecărui turn este exprimată printr-o cifră nenulă.&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
cladiri.in&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
3112 &lt;br /&gt;
2772&lt;br /&gt;
42422&lt;br /&gt;
1741&lt;br /&gt;
27372&lt;br /&gt;
1212&lt;br /&gt;
cladiri.out&lt;br /&gt;
&lt;br /&gt;
7 3&lt;br /&gt;
2&lt;br /&gt;
8&lt;br /&gt;
==Explicație==&lt;br /&gt;
Cel mai înalt turn este format din 7 cuburi. Sunt 3 clădiri care au în construcţia lor turnuri cu această înălţime, cele pe care Crina lipeşte numerele: 2772, 1741 şi 27372. Rareş lipeşte pe clădiri bileţele cu numerele: 2121, 27372, 1471, 22424, 2772 şi 2113. Două dintre aceste clădiri au primit aceleaşi numere și de la Crina: 2772 şi 27372. Valoarea determinată conform cerinţei c) este 8. Se adaugă un cub la clădirea cu numărul 3112, 2 cuburi la cea cu numărul 42422, 3 cuburi la clădirea cu numărul 1741 şi 2 cuburi la cea cu numărul 1212.&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
with open(&amp;quot;cladiri.in&amp;quot;) as fin:&lt;br /&gt;
    n = int(fin.readline())&lt;br /&gt;
    buildings = [list(map(int, fin.readline().strip())) for _ in range(n)]&lt;br /&gt;
&lt;br /&gt;
# determinăm înălțimea celor mai înalte turnuri și numărul de clădiri cu turnuri de aceeași înălțime&lt;br /&gt;
max_height = 0&lt;br /&gt;
max_height_buildings = 0&lt;br /&gt;
heights = {}&lt;br /&gt;
for b in buildings:&lt;br /&gt;
    for i in range(len(b)):&lt;br /&gt;
        height = b[i]&lt;br /&gt;
        if height &amp;gt; max_height:&lt;br /&gt;
            max_height = height&lt;br /&gt;
            max_height_buildings = 1&lt;br /&gt;
        elif height == max_height:&lt;br /&gt;
            max_height_buildings += 1&lt;br /&gt;
        if height in heights:&lt;br /&gt;
            heights[height] += 1&lt;br /&gt;
        else:&lt;br /&gt;
            heights[height] = 1&lt;br /&gt;
&lt;br /&gt;
# găsim clădirile în care Crina și Rareș au lipit bilețele cu numere identice&lt;br /&gt;
common_buildings = set()&lt;br /&gt;
for i in range(n):&lt;br /&gt;
    for j in range(i+1, n):&lt;br /&gt;
        if buildings[i] == buildings[j]:&lt;br /&gt;
            common_buildings.add(i)&lt;br /&gt;
            common_buildings.add(j)&lt;br /&gt;
&lt;br /&gt;
# determinăm cel mai mic număr de cuburi necesar pentru a completa clădirile astfel încât să nu mai apară bilețele identice&lt;br /&gt;
min_cubes = 0&lt;br /&gt;
for b_idx in common_buildings:&lt;br /&gt;
    b = buildings[b_idx]&lt;br /&gt;
    for i in range(len(b)):&lt;br /&gt;
        for j in range(1, 10):&lt;br /&gt;
            if i == 0 and j == b[i]:&lt;br /&gt;
                # evităm cazul în care schimbăm înălțimea primului turn&lt;br /&gt;
                continue&lt;br /&gt;
            b_new = list(b)&lt;br /&gt;
            b_new[i] = j&lt;br /&gt;
            if b_new not in buildings:&lt;br /&gt;
                # am găsit o înălțime diferită de cele existente, așa că nu mai trebuie să adăugăm cuburi în această clădire&lt;br /&gt;
                min_cubes += j - b[i]&lt;br /&gt;
                break&lt;br /&gt;
&lt;br /&gt;
# scriem rezultatele în fișierul de ieșire&lt;br /&gt;
             &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1052_-_Chibrituri&amp;diff=6720</id>
		<title>1052 - Chibrituri</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1052_-_Chibrituri&amp;diff=6720"/>
		<updated>2023-05-20T13:00:55Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1052/chibrituri]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Lui Gigel, elev în clasa a V-a, îi place grozav de tare să se joace cu cifrele, cu numerele şi creează tot felul de probleme pe care apoi încearcă să le rezolve. Acum se joacă cu o cutie de chibrituri şi formează cu ele cifre. Apoi privirea i-a căzut pe cadranul unui ceas electronic şi a văzut că cifrele sunt formate din segmente orizontale şi verticale şi a început să formeze cu chibriturile cifrele care indică ora (vezi figura). Şi imediat şi-a pus o întrebare: “oare dacă am n chibrituri puse vertical şi m chibrituri puse orizontal, care este ora minimă pe care o pot forma cu aceste chibrituri?”&lt;br /&gt;
&lt;br /&gt;
==Cerinţa==&lt;br /&gt;
Fiind date un număr n de chibrituri verticale şi un număr m de chibrituri orizontale, să se scrie un program care determină numărul de ore posibile, ora minimă şi ora maximă care se pot forma cu aceste chibrituri, în modul indicat mai sus, utilizând toate chibriturile respective şi nemodificând orientarea acestora.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare chibrituri.in conține pe prima linie două numere naturale n m, separate printr-un spaţiu, indicând numărul de chibrituri verticale (n), respectiv orizontale (m).&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fișierul de ieșire chibrituri.out va conține pe prima linie numărul de variante posibile de a forma o oră corectă, pe a doua linie ora minimă ce poate fi obținută utilizând toate chibriturile și nemodificând orientarea acestora, iar pe a treia linie ora maximă ce poate fi obținută utilizând toate chibriturile și nemodificând orientarea acestora. Ora minimă și, respectiv, ora maximă se vor scrie sub forma hh:mm, unde ora hh şi minutul mm vor fi formate din exact două cifre, separate prin caracterul : (două puncte).&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
Pentru datele de test există întotdeauna soluţie.&lt;br /&gt;
&lt;br /&gt;
Cifrele sunt formate din chibrituri în felul următor:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
chibrituri.in&lt;br /&gt;
&lt;br /&gt;
14 10&lt;br /&gt;
chibrituri.out&lt;br /&gt;
&lt;br /&gt;
17&lt;br /&gt;
00:28&lt;br /&gt;
20:08&lt;br /&gt;
==Explicație==&lt;br /&gt;
17 variante posibile&lt;br /&gt;
Ora minimă: 00:28&lt;br /&gt;
Ora maximă: 20:08&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def count_possible_hours(n, m):&lt;br /&gt;
    matches = 0&lt;br /&gt;
    min_hour = 24&lt;br /&gt;
    max_hour = -1&lt;br /&gt;
&lt;br /&gt;
    for h1 in range(0, 3):&lt;br /&gt;
        for h2 in range(0, 10):&lt;br /&gt;
            for m1 in range(0, 6):&lt;br /&gt;
                for m2 in range(0, 10):&lt;br /&gt;
                    v = 2 * h1 + h2&lt;br /&gt;
                    h = [h1, h2]&lt;br /&gt;
                    m = [m1, m2]&lt;br /&gt;
                    if v &amp;lt;= n and (n - v) % 2 == 0:&lt;br /&gt;
                        h.extend([0] * ((n - v) // 2))&lt;br /&gt;
                        m.extend([0] * ((m - (n - v)) // 2))&lt;br /&gt;
                        if len(h) + len(m) == n + m:&lt;br /&gt;
                            hour = int(&amp;quot;&amp;quot;.join(str(d) for d in h))&lt;br /&gt;
                            minute = int(&amp;quot;&amp;quot;.join(str(d) for d in m))&lt;br /&gt;
                            if hour &amp;lt; 24 and minute &amp;lt; 60:&lt;br /&gt;
                                matches += 1&lt;br /&gt;
                                min_hour = min(min_hour, hour * 60 + minute)&lt;br /&gt;
                                max_hour = max(max_hour, hour * 60 + minute)&lt;br /&gt;
&lt;br /&gt;
    return matches, min_hour, max_hour&lt;br /&gt;
&lt;br /&gt;
# Citim datele de intrare&lt;br /&gt;
with open(&amp;quot;chibrituri.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
    n, m = map(int, f.readline().split())&lt;br /&gt;
&lt;br /&gt;
# Calculăm rezultatele&lt;br /&gt;
matches, min_hour, max_hour = count_possible_hours(n, m)&lt;br /&gt;
&lt;br /&gt;
# Scriem rezultatele în fișierul de ieșire&lt;br /&gt;
with open(&amp;quot;chibrituri.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
    f.write(str(matches) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    f.write(&amp;quot;{:02d}:{:02d}\n&amp;quot;.format(min_hour // 60, min_hour % 60))&lt;br /&gt;
    f.write(&amp;quot;{:02d}:{:02d}\n&amp;quot;.format(max_hour // 60, max_hour % 60))&lt;br /&gt;
&lt;br /&gt;
            &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0958_-_Povesti&amp;diff=6719</id>
		<title>0958 - Povesti</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0958_-_Povesti&amp;diff=6719"/>
		<updated>2023-05-20T13:00:00Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/958/povesti]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Rareș și Didi au primit în dar o carte rară de povești, cu N+1 pagini numerotate cu numerele distincte: 0, 1, 2, 3,…, N. De ce rară? Din două motive:&lt;br /&gt;
&lt;br /&gt;
Este necesar un cifru pentru a deschide cartea. Acest cifru este un număr C egal cu numărul de cifre folosite pentru numerotarea celor N+1 pagini ale cărții.&lt;br /&gt;
În carte există o pagină magică. Dacă este descoperită, atunci toate poveștile din carte vor fi înlocuite instantaneu cu altele necunoscute.&lt;br /&gt;
Pentru a descoperi numărul P al paginii magice se pornește de la numărul N din care se va alege o cifră (diferită de prima și ultima cifră ale lui N), astfel încât produsul dintre prefixul lui N (reprezentând numărul format din cifrele situate la stânga cifrei alese) și sufixul lui N (reprezentând numărul format din cifrele situate la dreapta cifrei alese) să fie maxim. Numărul paginii magice va fi egal cu acest produs maxim. De exemplu, pentru N=21035 se pot obține produsele: 210*5=1050, 21*35=735, 2*35=70. Astfel numărul paginii magice este 1050.&lt;br /&gt;
&lt;br /&gt;
Pasionați de povești, Rareș dorește să descopere pagina magică iar Didi și-a propus să descopere cifrul pentru deschiderea cărții.&lt;br /&gt;
&lt;br /&gt;
==Cerinţe==&lt;br /&gt;
Scrieţi un program care citeşte numărul natural nenul N şi care determină:&lt;br /&gt;
a) numărul P al paginii magice;&lt;br /&gt;
b) numărul C reprezentând cifrul de deschidere a cărții.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul N, reprezentând numărul de pagini ale cărții de povești.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numere P C, n această ordine, cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
100 ≤ N ≤ 1000000000; N număr natural&lt;br /&gt;
Pentru rezolvarea corectă a cerinţei a) se acordă 20% din punctaj, iar pentru rezolvarea corectă a ambelor cerinţe se acordă 100% din punctaj.&lt;br /&gt;
==Exemplu 1==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
113&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
3 232&lt;br /&gt;
=Explicație==&lt;br /&gt;
Numărul paginii magice este 3.&lt;br /&gt;
&lt;br /&gt;
Paginile cărții sunt numerotate cu numerele: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,…, 113. Cifrul este numărul C=232 deoarece s-au folosit 232 cifre pentru scrierea numerelor paginilor cărții.&lt;br /&gt;
&lt;br /&gt;
==Exemplu 2==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
21035&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
1050 94070&lt;br /&gt;
==Explicație==&lt;br /&gt;
Numărul paginii magice este 1050.&lt;br /&gt;
&lt;br /&gt;
Paginile cărții sunt numerotate cu numerele: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,…, 21035. Cifrul este numărul C=94070 deoarece s-au folosit 94070 cifre pentru scrierea numerelor paginilor cărții.&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# citirea datelor de intrare&lt;br /&gt;
N = int(input())&lt;br /&gt;
&lt;br /&gt;
# initializarea variabilelor pentru pagina magica&lt;br /&gt;
max_prod = 0&lt;br /&gt;
magic_page = 0&lt;br /&gt;
&lt;br /&gt;
# gasirea paginii magice&lt;br /&gt;
for i in range(1, len(str(N))-1):&lt;br /&gt;
    prefix = int(str(N)[:i])&lt;br /&gt;
    cifra = int(str(N)[i])&lt;br /&gt;
    sufix = int(str(N)[i+1:])&lt;br /&gt;
    produs = prefix * sufix&lt;br /&gt;
    if produs &amp;gt; max_prod:&lt;br /&gt;
        max_prod = produs&lt;br /&gt;
        magic_page = produs&lt;br /&gt;
&lt;br /&gt;
# gasirea cifrei de deschidere&lt;br /&gt;
C = sum(len(str(i)) for i in range(N+1))&lt;br /&gt;
&lt;br /&gt;
# afisarea rezultatelor&lt;br /&gt;
print(magic_page, C)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1353_-_Aparitii_Cifra&amp;diff=6718</id>
		<title>1353 - Aparitii Cifra</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1353_-_Aparitii_Cifra&amp;diff=6718"/>
		<updated>2023-05-20T12:59:40Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1353/aparitiicifra]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Determinaţi numărul de apariţii a unei cifre c în reprezentarea tuturor numerelor mai mici sau egale cu un n dat.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Pe prima linie a fişierului aparitiicifra.in se află numerele n şi c separate prin spaţii.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Pe prima linie a fişierului aparitiicifra.out se scrie numărul de apariţii a cifrei c în reprezentarea tuturor numerelor mai mici sau egale cu n.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
0 &amp;lt; n &amp;lt; 2.000.000.000&lt;br /&gt;
0 &amp;lt; c &amp;lt; 10&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
aparitiicifra.in&lt;br /&gt;
&lt;br /&gt;
15 1&lt;br /&gt;
aparitiicifra.out&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
==Explicație==&lt;br /&gt;
Cifra 1 a apărut în numerele 1, 10, 11 (de două ori), 12, 13, 14, 15.&lt;br /&gt;
&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
with open(&amp;quot;aparitiicifra.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
    n, c = f.readline().split()&lt;br /&gt;
    c_count = 0&lt;br /&gt;
    for i in range(1, int(n) + 1):&lt;br /&gt;
        for digit in str(i):&lt;br /&gt;
            if digit == c:&lt;br /&gt;
                c_count += 1&lt;br /&gt;
&lt;br /&gt;
with open(&amp;quot;aparitiicifra.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
    f.write(str(c_count))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0958_-_Povesti&amp;diff=6717</id>
		<title>0958 - Povesti</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0958_-_Povesti&amp;diff=6717"/>
		<updated>2023-05-20T12:58:45Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Enunt: [https://www.pbinfo.ro/probleme/958/povesti]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
Rareș și Didi au primit în dar o carte rară de povești, cu N+1 pagini numerotate cu numerele distincte: 0, 1, 2, 3,…, N. De ce rară? Din două motive:&lt;br /&gt;
&lt;br /&gt;
Este necesar un cifru pentru a deschide cartea. Acest cifru este un număr C egal cu numărul de cifre folosite pentru numerotarea celor N+1 pagini ale cărții.&lt;br /&gt;
În carte există o pagină magică. Dacă este descoperită, atunci toate poveștile din carte vor fi înlocuite instantaneu cu altele necunoscute.&lt;br /&gt;
Pentru a descoperi numărul P al paginii magice se pornește de la numărul N din care se va alege o cifră (diferită de prima și ultima cifră ale lui N), astfel încât produsul dintre prefixul lui N (reprezentând numărul format din cifrele situate la stânga cifrei alese) și sufixul lui N (reprezentând numărul format din cifrele situate la dreapta cifrei alese) să fie maxim. Numărul paginii magice va fi egal cu acest produs maxim. De exemplu, pentru N=21035 se pot obține produsele: 210*5=1050, 21*35=735, 2*35=70. Astfel numărul paginii magice este 1050.&lt;br /&gt;
&lt;br /&gt;
Pasionați de povești, Rareș dorește să descopere pagina magică iar Didi și-a propus să descopere cifrul pentru deschiderea cărții.&lt;br /&gt;
&lt;br /&gt;
==Cerinţe==&lt;br /&gt;
Scrieţi un program care citeşte numărul natural nenul N şi care determină:&lt;br /&gt;
a) numărul P al paginii magice;&lt;br /&gt;
b) numărul C reprezentând cifrul de deschidere a cărții.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul N, reprezentând numărul de pagini ale cărții de povești.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numere P C, n această ordine, cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
100 ≤ N ≤ 1000000000; N număr natural&lt;br /&gt;
Pentru rezolvarea corectă a cerinţei a) se acordă 20% din punctaj, iar pentru rezolvarea corectă a ambelor cerinţe se acordă 100% din punctaj.&lt;br /&gt;
==Exemplu 1==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
113&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
3 232&lt;br /&gt;
=Explicație==&lt;br /&gt;
Numărul paginii magice este 3.&lt;br /&gt;
&lt;br /&gt;
Paginile cărții sunt numerotate cu numerele: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,…, 113. Cifrul este numărul C=232 deoarece s-au folosit 232 cifre pentru scrierea numerelor paginilor cărții.&lt;br /&gt;
&lt;br /&gt;
==Exemplu 2==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
21035&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
1050 94070&lt;br /&gt;
==Explicație==&lt;br /&gt;
Numărul paginii magice este 1050.&lt;br /&gt;
&lt;br /&gt;
Paginile cărții sunt numerotate cu numerele: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,…, 21035. Cifrul este numărul C=94070 deoarece s-au folosit 94070 cifre pentru scrierea numerelor paginilor cărții.&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# citirea datelor de intrare&lt;br /&gt;
N = int(input())&lt;br /&gt;
&lt;br /&gt;
# initializarea variabilelor pentru pagina magica&lt;br /&gt;
max_prod = 0&lt;br /&gt;
magic_page = 0&lt;br /&gt;
&lt;br /&gt;
# gasirea paginii magice&lt;br /&gt;
for i in range(1, len(str(N))-1):&lt;br /&gt;
    prefix = int(str(N)[:i])&lt;br /&gt;
    cifra = int(str(N)[i])&lt;br /&gt;
    sufix = int(str(N)[i+1:])&lt;br /&gt;
    produs = prefix * sufix&lt;br /&gt;
    if produs &amp;gt; max_prod:&lt;br /&gt;
        max_prod = produs&lt;br /&gt;
        magic_page = produs&lt;br /&gt;
&lt;br /&gt;
# gasirea cifrei de deschidere&lt;br /&gt;
C = sum(len(str(i)) for i in range(N+1))&lt;br /&gt;
&lt;br /&gt;
# afisarea rezultatelor&lt;br /&gt;
print(magic_page, C)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0803_-_Nr_Sufix&amp;diff=6716</id>
		<title>0803 - Nr Sufix</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0803_-_Nr_Sufix&amp;diff=6716"/>
		<updated>2023-05-20T12:57:58Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/803/nrsufix]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un număr natural x și un șir de numere naturale. Să se determine ultimul număr din șir care îl care ca sufix pe x.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare nrsufix.in conține pe prima linie numărul x, iar pe următoarele linii numerele din șir.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fișierul de ieșire nrsufix.out va conține pe prima linie ultimul număr din șir care îl care ca sufix pe x. Dacă în șir nu există nici un astfel de număr, se va afișa nu exista.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
toate numerele din fișierul de intrare au cel puțin una și cel mult nouă cifre&lt;br /&gt;
șirul dat va conține cel puțin două și cel mult 1.000.000 de elemente&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
nrsufix.in&lt;br /&gt;
&lt;br /&gt;
12&lt;br /&gt;
3445 89312 1245 12 67120 312 1234578&lt;br /&gt;
nrsufix.out&lt;br /&gt;
&lt;br /&gt;
312&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
for i in range(len(sir) - 1, -1, -1):&lt;br /&gt;
if sir[i].endswith(x): # Verificam daca sir[i] se termina cu x&lt;br /&gt;
# Afisam si inchidem fisierul &amp;quot;nrsufix.out&amp;quot; cu ultimul numar gasit ca sufix pentru x&lt;br /&gt;
with open(&amp;quot;nrsufix.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
f.write(sir[i])&lt;br /&gt;
break&lt;br /&gt;
else:&lt;br /&gt;
# Daca niciun numar din sir nu are x ca sufix, afisam &amp;quot;nu exista&amp;quot;&lt;br /&gt;
with open(&amp;quot;nrsufix.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
f.write(&amp;quot;nu exista&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1410_-_Numere_12&amp;diff=6715</id>
		<title>1410 - Numere 12</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1410_-_Numere_12&amp;diff=6715"/>
		<updated>2023-05-20T12:57:04Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1410/numere12]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se citesc perechi de numere naturale până la citirea a două valori nule. Să se determine câte dintre perechile X Y au proprietatea că prin concatenarea lui X cu Y sau a lui Y cu X să se obțină un palindrom.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură perechi de numere naturale. Citirea se încheie la introducerea a două valori nule.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul C, reprezentând valoarea cerută.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
se vor citi cel mult 40 de perechi de numere;&lt;br /&gt;
ultima pereche citită nu se va lua în considerare;&lt;br /&gt;
toate numerele citite vor fi mai mici decât 1.000.000;&lt;br /&gt;
toate numerele citite sunt nenule, cu excepția ultimelor două;&lt;br /&gt;
prin concatenarea a două numere înțelegem “lipirea” lor; de exemplu, 12 concatenat cu 5 este 125, iar 5 concatenat cu 12 este 512.&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
14 516&lt;br /&gt;
14 416&lt;br /&gt;
13 13&lt;br /&gt;
123 321&lt;br /&gt;
156 2651&lt;br /&gt;
456 674&lt;br /&gt;
0 0&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
==Explicație==&lt;br /&gt;
Perechile care respectă regula sunt:&lt;br /&gt;
&lt;br /&gt;
14 416: 41614 este palindrom;&lt;br /&gt;
123 321: 123321 este palindrom; la fel și 321123 este palindrom;&lt;br /&gt;
156 2651: 1562651 este palindrom.&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
c = 0&lt;br /&gt;
x, y = map(int, input().split())&lt;br /&gt;
while x != 0 or y != 0:&lt;br /&gt;
    xy = str(x) + str(y)&lt;br /&gt;
    yx = str(y) + str(x)&lt;br /&gt;
    if xy == xy[::-1] or yx == yx[::-1]:&lt;br /&gt;
        c = c + 1&lt;br /&gt;
    x, y = map(int, input().split())&lt;br /&gt;
print(c)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0442_-_Jumatate&amp;diff=6714</id>
		<title>0442 - Jumatate</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0442_-_Jumatate&amp;diff=6714"/>
		<updated>2023-05-20T12:56:19Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/442/jumatate]&lt;br /&gt;
&lt;br /&gt;
= Cerinţa =&lt;br /&gt;
Se citește un număr natural &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;. Acest număr se “împarte” în alte două numere &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; și &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, astfel: &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; este format din cifrele din prima jumătate a lui &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; este format din cifrele din a doua jumătate a lui &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;. Dacă &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; are număr impar de cifre, cifra din mijloc se ignoră. De exemplu, dacă &amp;lt;code&amp;gt;n=9183792&amp;lt;/code&amp;gt;, atunci &amp;lt;code&amp;gt;a=918&amp;lt;/code&amp;gt;, iar &amp;lt;code&amp;gt;b=792&amp;lt;/code&amp;gt;. Să se determine valoarea absolută a diferenței dintre &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; și &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Programul citește de la tastatură numărul &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Date de ieşire =&lt;br /&gt;
Programul afișează pe ecran numărul &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;, reprezentând valoarea cerută.&lt;br /&gt;
&lt;br /&gt;
= Restricţii şi precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;1 ≤ n ≤ 1.000.000.000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Exemplu: =&lt;br /&gt;
Intrare&lt;br /&gt;
 9183792&lt;br /&gt;
Ieșire&lt;br /&gt;
 126&lt;br /&gt;
&lt;br /&gt;
== Încărcare soluție ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n = input()&lt;br /&gt;
half = len(n) // 2&lt;br /&gt;
if len(n) % 2 != 0:&lt;br /&gt;
half += 1&lt;br /&gt;
a = int(n[:half])&lt;br /&gt;
b = int(n[half:])&lt;br /&gt;
print(abs(a - b))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0465_-_Ogl_PP&amp;diff=6713</id>
		<title>0465 - Ogl PP</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0465_-_Ogl_PP&amp;diff=6713"/>
		<updated>2023-05-20T12:55:30Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/465/oglpp]&lt;br /&gt;
&lt;br /&gt;
=Cerinţa==&lt;br /&gt;
Se dau 2 numere naturale a b, a &amp;lt; b. Determinați câte numere din intervalul [a,b] sunt pătrate perfecte și au proprietatea că oglinditul lor este pătrat perfect.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele a b.&lt;br /&gt;
&lt;br /&gt;
==Date de ieşire==&lt;br /&gt;
Programul afișează pe ecran numărul C, reprezentând valoarea căutată.&lt;br /&gt;
&lt;br /&gt;
==Restricţii şi precizări==&lt;br /&gt;
1 ≤ a &amp;lt; b ≤ 1.000.000.000&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
100 500&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
==Explicație==&lt;br /&gt;
Numerele sunt 100 121 144 169 400 441 484.&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def is_square(n):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Verifică dacă n este pătrat perfect.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    return int(n ** 0.5) ** 2 == n&lt;br /&gt;
&lt;br /&gt;
def reverse_digits(n):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Inversează cifrele unui număr.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    rev = 0&lt;br /&gt;
    while n &amp;gt; 0:&lt;br /&gt;
        rev = 10 * rev + n % 10&lt;br /&gt;
        n //= 10&lt;br /&gt;
    return rev&lt;br /&gt;
&lt;br /&gt;
a, b = map(int, input().split())&lt;br /&gt;
&lt;br /&gt;
count = 0&lt;br /&gt;
for num in range(a, b + 1):&lt;br /&gt;
    if is_square(num) and is_square(reverse_digits(num)):&lt;br /&gt;
        count += 1&lt;br /&gt;
&lt;br /&gt;
print(count)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2870_-_Magie&amp;diff=6712</id>
		<title>2870 - Magie</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2870_-_Magie&amp;diff=6712"/>
		<updated>2023-05-20T12:54:52Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2870/magie]&lt;br /&gt;
&lt;br /&gt;
==Enunt==&lt;br /&gt;
În regatul de gheață Olaf este renumit pentru spectacolele sale de magie. La o reprezentaţie de magie, Olaf invită pe scenă N persoane. Fiecare persoană îi şopteşte lui Olaf la ureche anul nașterii şi el calculează vârsta fiecărei persoane ca fiind diferența dintre 2017 și anul nașterii acesteia.&lt;br /&gt;
&lt;br /&gt;
Printr-o magie, Olaf face să apară pe scenă, câte un om de zăpadă pentru fiecare copil de 12 ani care se află printre cele N persoane.&lt;br /&gt;
&lt;br /&gt;
Olaf asociază apoi pentru fiecare persoană de pe scenă un număr magic obținut prin însumarea tuturor cifrelor ce apar în anul nașterii persoanei respective.&lt;br /&gt;
&lt;br /&gt;
Printr-o nouă magie, Olaf scoate din pălăria sa un buchet cu flori de gheață, buchet ce conține atâtea flori cât arată cel mai mare număr magic asociat de Olaf unei persoane. El dăruieşte acest buchet Elsei – prințesa regatului.&lt;br /&gt;
&lt;br /&gt;
Scrieți un program care să determine:&lt;br /&gt;
&lt;br /&gt;
a) Numărul oamenilor de zăpadă care au apărut pe scenă prin magia lui Olaf;&lt;br /&gt;
b) Numărul florilor de gheață din buchetul pe care Olaf l-a dăruit Elsei.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare magie.in conține pe prima linie numărul N, ce reprezintă numărul persoanelor invitate de Olaf pe scenă, iar de pe următoarele N linii, câte un număr natural care are exact 4 cifre şi care reprezintă anul nașterii unei persoane.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fișierul de ieșire magie.out va conține pe prima linie numărul oamenilor de zăpadă apăruți pe scenă în urma magiei lui Olaf, iar pe cea de-a doua linie, un număr natural ce reprezintă numărul florilor de gheață din buchetul lui Olaf.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ N ≤ 100&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
magie.in&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
1994&lt;br /&gt;
2005&lt;br /&gt;
1965&lt;br /&gt;
2005&lt;br /&gt;
2005&lt;br /&gt;
magie.out&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
23&lt;br /&gt;
==Explicație==&lt;br /&gt;
Pe scenă au fost invitate 5 persoane.Trei dintre persoane au vârsta de 12 ani ceea ce înseamnă că Olaf a făcut ca prin magie să apară pe scenă 3 oameni de zăpadă.&lt;br /&gt;
&lt;br /&gt;
Pentru persoana născută în 1994 numărul magic este 1+9+9+4=23.&lt;br /&gt;
Pentru persoana născută în 2005 numărul magic este 2+0+0+5=7&lt;br /&gt;
Pentru persoana născută în 1965 numărul magic este 1+9+6+5=21&lt;br /&gt;
&lt;br /&gt;
Cel mai mare număr magic este 23. Buchetul cu flori de gheață va conține 23 de flori.&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n = int(input())&lt;br /&gt;
max_magic = 0&lt;br /&gt;
num_of_snowmen = 0&lt;br /&gt;
for i in range(n):&lt;br /&gt;
year = int(input())&lt;br /&gt;
age = 2017 - year&lt;br /&gt;
if age == 12:&lt;br /&gt;
num_of_snowmen += 1&lt;br /&gt;
magic = sum(int(digit) for digit in str(year))&lt;br /&gt;
if magic &amp;gt; max_magic:&lt;br /&gt;
max_magic = magic&lt;br /&gt;
print(num_of_snowmen)&lt;br /&gt;
print(max_magic)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1925_-_Numar_9&amp;diff=6711</id>
		<title>1925 - Numar 9</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1925_-_Numar_9&amp;diff=6711"/>
		<updated>2023-05-20T12:54:05Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1925/numar9]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau două numere naturale S şi K. Să se afle cel mai mic număr natural A care are suma cifrelor egală cu S, precum şi restul împărţirii lui A la K.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare numar9.in conține pe prima linie numerele naturale S şi K.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fișierul de ieșire numar9.out va conține pe prima linie numărul A, iar pe a doua linie restul împărţirii lui A la K.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ S ≤ 20.000.000&lt;br /&gt;
1 ≤ K ≤ 1.000.000&lt;br /&gt;
Pentru prima cerinţă se acordă 60p, iar pentru a doua 40p&lt;br /&gt;
Pentru a primi punctajul pentru a doua cerinţă, în fişierul numar9.out trebuie să afişaţi două numere&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
numar9.in&lt;br /&gt;
&lt;br /&gt;
25 13&lt;br /&gt;
numar9.out&lt;br /&gt;
&lt;br /&gt;
799&lt;br /&gt;
6&lt;br /&gt;
==Explicație==&lt;br /&gt;
Cel mai mic număr natural care are suma cifrelor egală cu 25 este 799. Restul împărţirii lui 799 la 13 este 6.&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# Citim valorile S și K din fișierul de intrare&lt;br /&gt;
with open(&amp;quot;numar9.in&amp;quot;) as f:&lt;br /&gt;
    S, K = map(int, f.readline().split())&lt;br /&gt;
&lt;br /&gt;
# Inițializăm A cu 0&lt;br /&gt;
A = 0&lt;br /&gt;
&lt;br /&gt;
# Parcurgem cifrele de la dreapta la stânga&lt;br /&gt;
while S &amp;gt; 0:&lt;br /&gt;
    # Adunăm cifra curentă la A&lt;br /&gt;
    cifra = min(S, 9) # putem aduna maxim 9 la A&lt;br /&gt;
    A = A * 10 + cifra&lt;br /&gt;
    S -= cifra&lt;br /&gt;
&lt;br /&gt;
# Găsim restul împărțirii lui A la K și afișăm rezultatele în fișierul de ieșire&lt;br /&gt;
with open(&amp;quot;numar9.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
    f.write(str(A) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
    f.write(str(A % K) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0365_-_Cifre_Comune&amp;diff=6710</id>
		<title>0365 - Cifre Comune</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0365_-_Cifre_Comune&amp;diff=6710"/>
		<updated>2023-05-20T12:53:19Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/365/cifre-comune]&lt;br /&gt;
&lt;br /&gt;
==Cerinţa==&lt;br /&gt;
Se citesc două numere naturale n și m. Să se decidă dacă cele două numere au cel puțin o cifră comună.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele n și m.&lt;br /&gt;
&lt;br /&gt;
==Date de ieşire==&lt;br /&gt;
Programul afișează pe ecran mesajul DA, dacă cele două numere au cel puțin o cifră comună, respectiv NU în caz contrar.&lt;br /&gt;
&lt;br /&gt;
==Restricţii şi precizări==&lt;br /&gt;
1 ≤ n, m ≤ 1.000.000.000&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Date de intrare&lt;br /&gt;
&lt;br /&gt;
173954 889205&lt;br /&gt;
Date de ieșire&lt;br /&gt;
&lt;br /&gt;
DA&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n = input()&lt;br /&gt;
m = input()&lt;br /&gt;
&lt;br /&gt;
if set(n) &amp;amp; set(m):&lt;br /&gt;
    print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2290_-_Oglindite&amp;diff=6709</id>
		<title>2290 - Oglindite</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2290_-_Oglindite&amp;diff=6709"/>
		<updated>2023-05-20T12:52:28Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2290/oglindite]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau n numere naturale. Afișați numărul pentru care diferența în valoare absolută dintre el și oglinditul său este minimă. Dacă există mai multe asemenea numere, afișați-l pe cel mai mic.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul determinat x.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ n ≤ 1000&lt;br /&gt;
cele n numere citite vor fi mai mici decât 1.000.000.000&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
4&lt;br /&gt;
127 964 801 601&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
601&lt;br /&gt;
==Explicație==&lt;br /&gt;
oglinditul lui 127 este 721, iar diferența este 594&lt;br /&gt;
oglinditul lui 964 este 469, iar diferența este 495&lt;br /&gt;
oglinditul lui 801 este 108, iar diferența este 693&lt;br /&gt;
oglinditul lui 601 este 106, iar diferența este 495&lt;br /&gt;
Diferența minimă este 495 și se obține pentru 601&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n = int(input())&lt;br /&gt;
min_diff = float(&#039;inf&#039;)&lt;br /&gt;
found_num = float(&#039;inf&#039;)&lt;br /&gt;
&lt;br /&gt;
for i in range(n):&lt;br /&gt;
    num = int(input())&lt;br /&gt;
    reversed_num = int(str(num)[::-1])&lt;br /&gt;
    diff = abs(num - reversed_num)&lt;br /&gt;
    if diff &amp;lt; min_diff or (diff == min_diff and num &amp;lt; found_num):&lt;br /&gt;
        min_diff = diff&lt;br /&gt;
        found_num = num&lt;br /&gt;
&lt;br /&gt;
print(found_num)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0363_-_Sum_Cif_2&amp;diff=6708</id>
		<title>0363 - Sum Cif 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0363_-_Sum_Cif_2&amp;diff=6708"/>
		<updated>2023-05-20T12:51:48Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/363/sumcif2]&lt;br /&gt;
&lt;br /&gt;
==Cerinţa==&lt;br /&gt;
Se citește un număr natural n. Să se determine suma cifrelor aflate pe poziții impare. Numărarea pozițiilor în numărul dat se face începând de la prima cifră.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n&lt;br /&gt;
&lt;br /&gt;
==Date de ieşire==&lt;br /&gt;
Programul afișează pe ecran numărul S, reprezentând suma cerută.&lt;br /&gt;
&lt;br /&gt;
==Restricţii şi precizări==&lt;br /&gt;
1 ≤ n ≤ 1.000.000.000&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Date de intrare&lt;br /&gt;
&lt;br /&gt;
9712654&lt;br /&gt;
Date de ieșire&lt;br /&gt;
&lt;br /&gt;
20&lt;br /&gt;
==Explicație==&lt;br /&gt;
S-au adunat cifrele 9 1 6 4.&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n = input()&lt;br /&gt;
suma = 0&lt;br /&gt;
for i in range(0, len(n), 2):&lt;br /&gt;
suma += int(n[i])&lt;br /&gt;
print(suma)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2662_-_Construire_Numar_Cu_Cifrele_Maxime&amp;diff=6707</id>
		<title>2662 - Construire Numar Cu Cifrele Maxime</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2662_-_Construire_Numar_Cu_Cifrele_Maxime&amp;diff=6707"/>
		<updated>2023-05-20T12:51:12Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2662/construirenumarcucifrelemaxime]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau n numere naturale. Se construiește o valoare selectând de la fiecare număr cifra maximă. Determinați pătratul acestei valori.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran valoarea cerută.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
2 ≤ n ≤ 9&lt;br /&gt;
cele n numere citite vor fi mai mici decât 1.000.000.000.000.000.000&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
132 29&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
1521&lt;br /&gt;
==Explicație==&lt;br /&gt;
39 * 39 = 1521.&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n = int(input())&lt;br /&gt;
numbers = input().split()&lt;br /&gt;
&lt;br /&gt;
max_digits = []&lt;br /&gt;
for num in numbers:&lt;br /&gt;
    max_digit = max(num)&lt;br /&gt;
    max_digits.append(max_digit)&lt;br /&gt;
&lt;br /&gt;
max_num = int(&#039;&#039;.join(max_digits))&lt;br /&gt;
print(max_num ** 2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2289_-_Par_Impar&amp;diff=6706</id>
		<title>2289 - Par Impar</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2289_-_Par_Impar&amp;diff=6706"/>
		<updated>2023-05-20T12:50:14Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2289/parimpar]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Pentru un număr natural dat &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, numim ParImpar următoarea operație:&lt;br /&gt;
&lt;br /&gt;
* dacă &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; este par, rezultatul este numărul scris cu cifrele pare ale lui &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; – de exemplu, pentru &amp;lt;code&amp;gt;410722&amp;lt;/code&amp;gt; rezultatul este &amp;lt;code&amp;gt;4022&amp;lt;/code&amp;gt;;&lt;br /&gt;
* dacă &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; este impar, rezultatul este numărul scris cu cifrele impare ale lui &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; – de exemplu, pentru &amp;lt;code&amp;gt;357103&amp;lt;/code&amp;gt; rezultatul este &amp;lt;code&amp;gt;35713&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se citesc două numere naturale. Să se afișeze numărul pentru care rezultatul operației ParImpar este mai mare.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură două numere naturale.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran valoarea cerută.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
&lt;br /&gt;
* cele două numere citite vor fi mai mici decât &amp;lt;code&amp;gt;1.000.000.000&amp;lt;/code&amp;gt;&lt;br /&gt;
* dacă pentru cele două numere se obține același rezultat pentru operația ParImpar se va afișa numărul mai mare.&lt;br /&gt;
&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Intrare&lt;br /&gt;
 410722 357103&lt;br /&gt;
Ieșire&lt;br /&gt;
 357103&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n, m = map(int, input().split())&lt;br /&gt;
&lt;br /&gt;
def par_impar(num):&lt;br /&gt;
    res = 0&lt;br /&gt;
    while num:&lt;br /&gt;
        cif = num % 10&lt;br /&gt;
        num //= 10&lt;br /&gt;
        if cif % 2 == (num % 2):&lt;br /&gt;
            res = res * 10 + cif&lt;br /&gt;
    return res&lt;br /&gt;
&lt;br /&gt;
if par_impar(n) &amp;gt;= par_impar(m):&lt;br /&gt;
    print(n)&lt;br /&gt;
else:&lt;br /&gt;
    print(m)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0944_-_Rest&amp;diff=6705</id>
		<title>0944 - Rest</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0944_-_Rest&amp;diff=6705"/>
		<updated>2023-05-20T12:49:39Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/944/rest]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă n un număr natural. Aflați restul maxim care se poate obține dacă împărțim numărul n la orice număr care se obține prin eliminarea unei cifre ale sale.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul r, reprezentând restul maxim cerut.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
10 ≤ n ≤ 2.000.000.000&lt;br /&gt;
dacă prin eliminarea unei cifre se obține numărul 0, atunci n nu se va împărți la 0.&lt;br /&gt;
==Exemplu==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
217&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
13&lt;br /&gt;
==Explicație==&lt;br /&gt;
217:17=12 rest 13, 217:27=8 rest 1, 217:21=10 rest 7, deci restul maxim obținut este 13.&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n = input()&lt;br /&gt;
rest_maxim = -1&lt;br /&gt;
for i in range(len(n)):&lt;br /&gt;
nou_numar = int(n[:i] + n[i+1:])&lt;br /&gt;
if nou_numar != 0 and n % nou_numar == 0:&lt;br /&gt;
# Calculam restul&lt;br /&gt;
rest = n % nou_numar&lt;br /&gt;
# Actualizam restul maxim&lt;br /&gt;
rest_maxim = max(rest_maxim, rest)&lt;br /&gt;
print(rest_maxim)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2903_-_Smartphone_1&amp;diff=6704</id>
		<title>2903 - Smartphone 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2903_-_Smartphone_1&amp;diff=6704"/>
		<updated>2023-05-20T12:49:05Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2903/smartphone1]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Toată lumea cunoaște modelul de deblocare a telefoanelor sub formă de o tablou cu 3 linii și 3 coloane. Se pot trasa diferite modele de deblocare, dintr-un punct putând merge la oricare vecin al lui. (Sunt maximum 8 vecini de exemplu pentru punctul din mijloc și 3 vecini pentru un punct din colț).&lt;br /&gt;
Dacă numerotăm punctele ca mai sus, fiecărui model de deblocare îi corespunde un număr cu cifrele de la 1 la 9, cifrele numărului fiind în ordinea în care sunt parcurse punctele. De exemplu, numărul 98569 și 42536 corespunde unor modele de deblocare, iar numerele 98365 și 1223 nu corespund unor astfel de modele (în numărul 98365 cifrele 8 și 3 nu se învecinează, iar în 1223 cifra 2 apare pe două poziții consecutive).&lt;br /&gt;
Dându-se n numere naturale cu toate cifrele nenule, să se determine câte dintre ele corespund unui model de deblocare.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare smartphone1.in conține pe prima linie numărul n, iar pe a doua linie n numere naturale separate prin spații.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fișierul de ieșire smartphone1.out va conține pe prima linie numărul C, reprezentând valoarea cerută.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ n ≤ 1000&lt;br /&gt;
cele n numere date au cel puțin una și cel mult nouă cifre nenule&lt;br /&gt;
în tabloul dat, două cifre se învecinează pe linie, coloană sau diagonală;&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
smartphone1.in&lt;br /&gt;
&lt;br /&gt;
4&lt;br /&gt;
98569 42536 98365 1223&lt;br /&gt;
smartphone1.out&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
==Încărcare solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def is_valid(number):&lt;br /&gt;
    # Crearea matricei pentru modelul de deblocare&lt;br /&gt;
    matrix = [[0 for _ in range(3)] for _ in range(3)]&lt;br /&gt;
    for i, digit in enumerate(str(number)):&lt;br /&gt;
        row, col = divmod(i, 3)&lt;br /&gt;
        matrix[row][col] = int(digit)&lt;br /&gt;
&lt;br /&gt;
    # Verificarea dacă cifrele se învecinează corespunzător&lt;br /&gt;
    prev_digit = None&lt;br /&gt;
    for row in matrix:&lt;br /&gt;
        for digit in row:&lt;br /&gt;
            if prev_digit is None:&lt;br /&gt;
                prev_digit = digit&lt;br /&gt;
            elif abs(prev_digit - digit) not in [2, 6, 7, 8]:&lt;br /&gt;
                return False&lt;br /&gt;
            else:&lt;br /&gt;
                prev_digit = digit&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Citirea datelor de intrare&lt;br /&gt;
with open(&#039;smartphone1.in&#039;, &#039;r&#039;) as f:&lt;br /&gt;
    n = int(f.readline())&lt;br /&gt;
    numbers = list(map(int, f.readline().split()))&lt;br /&gt;
&lt;br /&gt;
# Determinarea numărului de numere valide&lt;br /&gt;
count = 0&lt;br /&gt;
for number in numbers:&lt;br /&gt;
    if is_valid(number):&lt;br /&gt;
        count += 1&lt;br /&gt;
&lt;br /&gt;
# Scrierea rezultatului în fișierul de ieșire&lt;br /&gt;
with open(&#039;smartphone1.out&#039;, &#039;w&#039;) as f:&lt;br /&gt;
    f.write(str(count))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3927_-_Cmm_nr&amp;diff=6703</id>
		<title>3927 - Cmm nr</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3927_-_Cmm_nr&amp;diff=6703"/>
		<updated>2023-05-20T12:48:18Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3927/cmmnr]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un număr natural n. Să se determine numărul maxim care se poate obține din n eliminând exact o cifră. Cifrele rămase nu-și pot schimba ordinea.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul maxim m obținut din n prin eliminarea unei singure cifre.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
10 ≤ n ≤ 1.000.000.000.000&lt;br /&gt;
==Exemplul 1:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
4182&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
482&lt;br /&gt;
==Exemplul 2:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
1234&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
234&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n = input()&lt;br /&gt;
max_num = -1&lt;br /&gt;
&lt;br /&gt;
for i in range(len(n)):&lt;br /&gt;
    # formăm numărul obținut prin eliminarea cifrei i&lt;br /&gt;
    new_num = int(n[:i] + n[i+1:])&lt;br /&gt;
    # verificăm dacă numărul format este mai mare decât maximul curent&lt;br /&gt;
    if new_num &amp;gt; max_num:&lt;br /&gt;
        max_num = new_num&lt;br /&gt;
&lt;br /&gt;
print(max_num)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3246_-_Echilibrat_ab&amp;diff=6702</id>
		<title>3246 - Echilibrat ab</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3246_-_Echilibrat_ab&amp;diff=6702"/>
		<updated>2023-05-20T12:47:32Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3246/echilibrat-ab]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau două numere naturale a și b. Calculați suma numerelor echilibrate din intervalul [a,b]. Un număr este echilibrat dacă are număr par de cifre si are numărul de cifre pare egal cu numărul de cifre impare. De exemplu 3427 este echilibrat, iar 2333 nu este.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele a și b.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul s, reprezentând suma numerelor echilibrate din intervalul [a,b].&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ a ≤ b ≤ 1.000.000&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
56 71&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
509&lt;br /&gt;
==Explicație==&lt;br /&gt;
În intervalul [56,71] numerele echilibrate sunt 56, 58, 61, 63, 65, 67, 69, 70, iar suma lor este 509.&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def is_balanced(n):&lt;br /&gt;
    digits = [int(d) for d in str(n)]&lt;br /&gt;
    even_count = sum(d % 2 == 0 for d in digits)&lt;br /&gt;
    odd_count = len(digits) - even_count&lt;br /&gt;
    return len(digits) % 2 == 0 and even_count == odd_count&lt;br /&gt;
&lt;br /&gt;
a, b = map(int, input().split())&lt;br /&gt;
&lt;br /&gt;
sum_balanced = 0&lt;br /&gt;
for i in range(a, b+1):&lt;br /&gt;
    if is_balanced(i):&lt;br /&gt;
        sum_balanced += i&lt;br /&gt;
&lt;br /&gt;
print(sum_balanced)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2687_-_Ultima_Cifra_-_Prima_Cifra&amp;diff=6701</id>
		<title>2687 - Ultima Cifra - Prima Cifra</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2687_-_Ultima_Cifra_-_Prima_Cifra&amp;diff=6701"/>
		<updated>2023-05-20T12:46:50Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2687/ultimacifraprimacifra]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se citesc n numere naturale, să se pe afișeze pe câte o linie, fiecare pereche de numere consecutive care au ultima cifră egală cu prima cifra a numărului urmator.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul câte o pereche de astfel de numere pe câte o linie conform cerinței.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ n ≤ 1000&lt;br /&gt;
cele n numere citite vor fi mai mici decât 1.000.000.000&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
12 213 214 412 212&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
12 213 &lt;br /&gt;
214 412&lt;br /&gt;
412 212&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n = int(input())&lt;br /&gt;
numbers = list(map(int, input().split()))&lt;br /&gt;
for i in range(n-1):&lt;br /&gt;
if numbers[i] % 10 == numbers[i+1] // 10:&lt;br /&gt;
print(numbers[i], numbers[i+1])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4018_-_Mos_Craciun_3&amp;diff=6700</id>
		<title>4018 - Mos Craciun 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4018_-_Mos_Craciun_3&amp;diff=6700"/>
		<updated>2023-05-20T12:45:55Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4018/moscraciun3]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Moș Crăciun este pregătit să ofere cadouri tuturor copiilor. Singura lui problema este Grinch, care încearcă să deschidă seiful cu cadouri al lui Moș Crăciun. Grinch a aflat codul, așa că Moș Craciun a decis să îl schimbe cu unul nou. Presupunem că parola seifului este n și avem 2 numere, p și k. Moș Craciun va inversa primele p cifre și ultimele k cifre ale parolei – parola este formată numai din cifre nenule. Fiind foarte bătrân și greșind mult la calcule, vă roagă să îl ajutați să determine noua parola.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele n p k.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran noul cod.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ n &amp;lt; 1000000000000000000&lt;br /&gt;
dacă n nu are cel puțin p+k cifre, se va afișa mesajul imposibil.&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
1428429 2 3&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
4128924&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n, p, k = input().split()&lt;br /&gt;
n = int(n)&lt;br /&gt;
p = int(p)&lt;br /&gt;
k = int(k)&lt;br /&gt;
if len(str(n)) &amp;lt; p + k:&lt;br /&gt;
    print(&amp;quot;imposibil&amp;quot;)&lt;br /&gt;
    exit()&lt;br /&gt;
n_str = str(n)&lt;br /&gt;
n_str = n_str[:p][::-1] + n_str[p:]&lt;br /&gt;
n_str = n_str[:-k] + n_str[-k:][::-1]&lt;br /&gt;
new_n = int(n_str)&lt;br /&gt;
print(new_n)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3079_-_Numere_a_-_b&amp;diff=6699</id>
		<title>3079 - Numere a - b</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3079_-_Numere_a_-_b&amp;diff=6699"/>
		<updated>2023-05-20T12:45:11Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3079/numere-a-b\&lt;br /&gt;
&lt;br /&gt;
= Cerința =&lt;br /&gt;
Se citesc două numere naturale &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; şi &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, care au acelaşi număr de cifre. Scrieți un program pentru a construi şi afişa un număr natural &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; cu proprietatea că fiecare cifră a acestuia este partea întreagă a mediei aritmetice a cifrelor situate in aceleaşi poziţii in numerele &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; şi &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Programul citește de la tastatură numerele &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; și &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
Programul va afișa pe ecran numărul &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; construit.&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;1 ≤ a, b ≤ 2.000.000.000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Exemplu: =&lt;br /&gt;
Intrare&lt;br /&gt;
 7532 5924&lt;br /&gt;
Ieșire&lt;br /&gt;
 6723&lt;br /&gt;
&lt;br /&gt;
=== Explicație ===&lt;br /&gt;
S-au citit &amp;lt;code&amp;gt;a=7532&amp;lt;/code&amp;gt; şi &amp;lt;code&amp;gt;b=5924&amp;lt;/code&amp;gt;, se va afişa &amp;lt;code&amp;gt;c=6723&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Încărcare soluție ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
a, b = input(&amp;quot;Introduceti doua numere naturale cu acelasi numar de cifre, separate prin spatiu: &amp;quot;).split() &lt;br /&gt;
&lt;br /&gt;
cifre_a = [int(cifra) for cifra in a]&lt;br /&gt;
&lt;br /&gt;
cifre_b = [int(cifra) for cifra in b] &lt;br /&gt;
&lt;br /&gt;
cifre_c = [] &lt;br /&gt;
&lt;br /&gt;
for i in range(len(cifre_a)): &lt;br /&gt;
&lt;br /&gt;
    cifra_medie = int((cifre_a[i] + cifre_b[i]) / 2) &lt;br /&gt;
&lt;br /&gt;
    cifre_c.append(cifra_medie) &lt;br /&gt;
&lt;br /&gt;
c = int(&amp;quot;&amp;quot;.join([str(cifra) for cifra in cifre_c])) &lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Numarul c este:&amp;quot;, c)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1613_-_Numere_15&amp;diff=6698</id>
		<title>1613 - Numere 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1613_-_Numere_15&amp;diff=6698"/>
		<updated>2023-05-20T12:44:24Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1613/numere15]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se citește un număr natural nenul n. Numărul n1 este format doar din cifrele pare ale lui n. Numărul n2 este format doar din cifrele impare ale lui n. Calculați valoarea absolută a diferenței lor.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul d, reprezentând valoarea absolută a diferenței dintre n1 și n2.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
10 ≤ n &amp;lt; 1.000.000.000&lt;br /&gt;
numărul n conține cel puțin o cifră pară și cel puțin o cifră impară&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
120341&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
73&lt;br /&gt;
==Explicație==&lt;br /&gt;
n1 este 204 iar n2 este 131. Diferența este 73.&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n = int(input())&lt;br /&gt;
&lt;br /&gt;
n1 = 0&lt;br /&gt;
n2 = 0&lt;br /&gt;
&lt;br /&gt;
while n &amp;gt; 0:&lt;br /&gt;
    cifra = n % 10&lt;br /&gt;
    if cifra % 2 == 0:&lt;br /&gt;
        n1 = n1 * 10 + cifra&lt;br /&gt;
    else:&lt;br /&gt;
        n2 = n2 * 10 + cifra&lt;br /&gt;
    n = n // 10&lt;br /&gt;
&lt;br /&gt;
diferenta = abs(n1 - n2)&lt;br /&gt;
print(diferenta)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1420_-_Happy_New_Year&amp;diff=6697</id>
		<title>1420 - Happy New Year</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1420_-_Happy_New_Year&amp;diff=6697"/>
		<updated>2023-05-20T12:43:43Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/1420/happynewyear]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau n numere naturale divizibile cu 9. Aceste numere se scriu unul lângă altul astfel încât să formeze un singur număr. Se calculează suma cifrelor numărului obţinut, apoi suma cifrelor sumei anterioare şi se continuă procedeul până se obţine ca rezultat un număr format dintr-o singură cifră. Cifra obţinută se înmulţeşte cu 7 şi se obţine un număr m. Se cere aflarea celui de-al m lea număr triunghiular.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul A, reprezentând al m-lea număr triunghiular.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ n ≤ 1.000.000&lt;br /&gt;
cele n numere citite vor fi mai mici decât 2.000.000.000&lt;br /&gt;
un număr natural nenul se numeşte triunghiular dacă este egal cu numărul elementelor dintr-o matrice pătratică, situate deasupra diagonalei principale.&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
2016 2016 2016&lt;br /&gt;
Ieșire&lt;br /&gt;
&lt;br /&gt;
2016&lt;br /&gt;
==Explicație==&lt;br /&gt;
Happy New Year !&lt;br /&gt;
&lt;br /&gt;
==Încărcare soluție==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def calc_cifra_finala(numar):&lt;br /&gt;
    while numar &amp;gt; 9:&lt;br /&gt;
        suma_cifre = 0&lt;br /&gt;
        for cifra in str(numar):&lt;br /&gt;
            suma_cifre += int(cifra)&lt;br /&gt;
        numar = suma_cifre&lt;br /&gt;
    return numar&lt;br /&gt;
&lt;br /&gt;
n = int(input())&lt;br /&gt;
numere = input().split()&lt;br /&gt;
&lt;br /&gt;
numar_m = int(calc_cifra_finala(int(&amp;quot;&amp;quot;.join(numere))) * 7)&lt;br /&gt;
&lt;br /&gt;
suma = 0&lt;br /&gt;
for i in range(1, numar_m + 1):&lt;br /&gt;
    suma += i&lt;br /&gt;
    if suma &amp;gt;= numar_m:&lt;br /&gt;
        print(i * (i + 1) // 2)&lt;br /&gt;
        break&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0121_-_Cifra_Maxima_2&amp;diff=6696</id>
		<title>0121 - Cifra Maxima 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0121_-_Cifra_Maxima_2&amp;diff=6696"/>
		<updated>2023-05-20T12:42:50Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/121/ciframaxima2]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cerinţă==&lt;br /&gt;
Se citeşte de la tastatură un număr natural. Să se determine cea mai mare cifră care apare în scrierea acestuia şi numărul de apariţii ale ei.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul va citi de la tastatură un număr natural.&lt;br /&gt;
&lt;br /&gt;
==Date de ieşire==&lt;br /&gt;
Programul va afişa pe ecran cea mai mare cifră a numărului citit şi numărul de apariţii ale ei, separate printr-un spaţiu.&lt;br /&gt;
&lt;br /&gt;
==Restricţii şi precizări==&lt;br /&gt;
numărul citit va fi mai mic decât 2.000.000.000&lt;br /&gt;
==Exemplu:==&lt;br /&gt;
Intrare&lt;br /&gt;
&lt;br /&gt;
274705&lt;br /&gt;
Ieşire&lt;br /&gt;
&lt;br /&gt;
7 2&lt;br /&gt;
&lt;br /&gt;
==Solutie==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
numar = int(input())&lt;br /&gt;
&lt;br /&gt;
aparitii_cifre = {}&lt;br /&gt;
for cifra in str(numar):&lt;br /&gt;
    if cifra in aparitii_cifre:&lt;br /&gt;
        aparitii_cifre[cifra] += 1&lt;br /&gt;
    else:&lt;br /&gt;
        aparitii_cifre[cifra] = 1&lt;br /&gt;
&lt;br /&gt;
cifra_max = max(aparitii_cifre, key=aparitii_cifre.get)&lt;br /&gt;
nr_aparitii_max = aparitii_cifre[cifra_max]&lt;br /&gt;
&lt;br /&gt;
print(cifra_max, nr_aparitii_max)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0118_-_Cifre_2&amp;diff=6695</id>
		<title>0118 - Cifre 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0118_-_Cifre_2&amp;diff=6695"/>
		<updated>2023-05-20T12:42:06Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/118/cifre2]&lt;br /&gt;
&lt;br /&gt;
==Cerinţă==&lt;br /&gt;
Să se scrie un program care să determine suma primelor două cifre ale unui număr natural citit de la tastatură.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul va citi de la tastatură un număr natural.&lt;br /&gt;
&lt;br /&gt;
==Date de ieşire==&lt;br /&gt;
Programul va afişa pe ecran valoarea cerută.&lt;br /&gt;
&lt;br /&gt;
==Restricţii şi precizări==&lt;br /&gt;
numărul citit va fi mai mic decât 2.000.000.000 şi mai mare decât 9&lt;br /&gt;
&lt;br /&gt;
==Exemplu==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:57015&lt;br /&gt;
&lt;br /&gt;
;Ieşire&lt;br /&gt;
&lt;br /&gt;
:12&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;
numar = int(input(&amp;quot;Introduceti un numar natural: &amp;quot;)) &lt;br /&gt;
&lt;br /&gt;
cifra1 = numar // 10**(len(str(numar))-2) &lt;br /&gt;
cifra2 = (numar // 10**(len(str(numar))-1)) % 10&lt;br /&gt;
&lt;br /&gt;
suma = cifra1 + cifra2 &lt;br /&gt;
print(&amp;quot;Suma primelor doua cifre este:&amp;quot;, suma)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0107_-_Aparitii&amp;diff=6694</id>
		<title>0107 - Aparitii</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0107_-_Aparitii&amp;diff=6694"/>
		<updated>2023-05-20T12:41:05Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/107/aparitii]&lt;br /&gt;
&lt;br /&gt;
==Cerinţă==&lt;br /&gt;
Să se scrie un program care să determine numărul de apariţii ale ultimei cifre în scrierea unui număr natural citit de la tastatură.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul va citi de la tastatură un număr natural.&lt;br /&gt;
&lt;br /&gt;
==Date de ieşire==&lt;br /&gt;
Programul va afişa pe ecran numărul de apariţii ale ultimei cifre în scrierea numărului citit.&lt;br /&gt;
&lt;br /&gt;
==Restricţii şi precizări==&lt;br /&gt;
numărul citit va fi mai mic decât 2.000.000.000&lt;br /&gt;
&lt;br /&gt;
==Exemplu==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:57015&lt;br /&gt;
&lt;br /&gt;
;Ieşire&lt;br /&gt;
&lt;br /&gt;
:2&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;
n = input(&amp;quot;Introduceți numărul: &amp;quot;)&lt;br /&gt;
numar_aparitii = [0, 0]  # lista care va contoriza de cate ori apare cifra 2 si cifra 3&lt;br /&gt;
# parcurgem cifrele numarului si contorizam&lt;br /&gt;
for cifra in n:&lt;br /&gt;
    if cifra == &#039;2&#039;:&lt;br /&gt;
        numar_aparitii[0] += 1&lt;br /&gt;
    elif cifra == &#039;3&#039;:&lt;br /&gt;
        numar_aparitii[1] += 1&lt;br /&gt;
# determinam cifra care apare de cele mai multe ori&lt;br /&gt;
if numar_aparitii[0] &amp;gt; numar_aparitii[1]:&lt;br /&gt;
    print(&amp;quot;2&amp;quot;)&lt;br /&gt;
elif numar_aparitii[1] &amp;gt; numar_aparitii[0]:&lt;br /&gt;
    print(&amp;quot;3&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;2 3&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0942_-_Cifre_23&amp;diff=6693</id>
		<title>0942 - Cifre 23</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0942_-_Cifre_23&amp;diff=6693"/>
		<updated>2023-05-20T12:40:25Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/942/cifre23]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un număr natural format din cifrele 2 sau 3. Aflaţi cifra care apare de cele mai multe ori în scrierea numărului.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran cifra care apare de cele mai multe ori în scrierea lui n .&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
n are cel mult 10 cifre&lt;br /&gt;
dacă cifrele 2 şi 3 apar de acelaşi număr de ori se va afişa: 2 3&lt;br /&gt;
&lt;br /&gt;
==Exemplu==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:23233&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:3&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Cifra 3 apare de 3 ori iar 2 numai de 2 ori.&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;
n = input(&amp;quot;Introduceți numărul: &amp;quot;)&lt;br /&gt;
numar_aparitii = [0, 0]  # lista care va contoriza de cate ori apare cifra 2 si cifra 3&lt;br /&gt;
# parcurgem cifrele numarului si contorizam&lt;br /&gt;
for cifra in n:&lt;br /&gt;
    if cifra == &#039;2&#039;:&lt;br /&gt;
        numar_aparitii[0] += 1&lt;br /&gt;
    elif cifra == &#039;3&#039;:&lt;br /&gt;
        numar_aparitii[1] += 1&lt;br /&gt;
# determinam cifra care apare de cele mai multe ori&lt;br /&gt;
if numar_aparitii[0] &amp;gt; numar_aparitii[1]:&lt;br /&gt;
    print(&amp;quot;2&amp;quot;)&lt;br /&gt;
elif numar_aparitii[1] &amp;gt; numar_aparitii[0]:&lt;br /&gt;
    print(&amp;quot;3&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;2 3&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4315_-_Cifre_17&amp;diff=6692</id>
		<title>4315 - Cifre 17</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4315_-_Cifre_17&amp;diff=6692"/>
		<updated>2023-05-20T12:39:39Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4315/cifre17]&lt;br /&gt;
&lt;br /&gt;
==Cerinţă==&lt;br /&gt;
Să se scrie un program care citește un număr natural și determină câte cifre ale numărului sunt mai mari decât a doua sa cifră.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul va citi de la tastatură un număr natural.&lt;br /&gt;
&lt;br /&gt;
==Date de ieşire==&lt;br /&gt;
Programul va afişa pe ecran valoarea cerută.&lt;br /&gt;
&lt;br /&gt;
==Restricţii şi precizări==&lt;br /&gt;
numărul citit va fi mai mic decât 2.000.000.000 și mai mare decât 9&lt;br /&gt;
&lt;br /&gt;
==Exemplu==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:32615&lt;br /&gt;
&lt;br /&gt;
;Ieşire&lt;br /&gt;
&lt;br /&gt;
:3&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
A doua cifră a numărului dat este 2. În număr sunt trei cifre mai mari decât 2.&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;
n = int(input(&amp;quot;Introduceți numărul: &amp;quot;))&lt;br /&gt;
# Extragem a doua cifră a numărului&lt;br /&gt;
numar_cifre = len(str(n))&lt;br /&gt;
a_doua_cifra = n // (10 ** (numar_cifre - 2)) % 10&lt;br /&gt;
# Inițializăm variabila count&lt;br /&gt;
count = 0&lt;br /&gt;
# Iterăm prin fiecare cifră și comparăm cu a_doua_cifra&lt;br /&gt;
for cifra in str(n):&lt;br /&gt;
    if int(cifra) &amp;gt; a_doua_cifra:&lt;br /&gt;
        count += 1&lt;br /&gt;
# Afișăm valoarea lui count&lt;br /&gt;
print(&amp;quot;Numărul de cifre mai mari decât a doua cifră este:&amp;quot;, count)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4314_-_Cifre_16&amp;diff=6691</id>
		<title>4314 - Cifre 16</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4314_-_Cifre_16&amp;diff=6691"/>
		<updated>2023-05-20T12:38:53Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4314/cifre16]&lt;br /&gt;
&lt;br /&gt;
==Cerinţă==&lt;br /&gt;
Să se scrie un program care citește un număr natural și determină câte cifre ale numărului sunt mai mici decât prima sa cifră.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul va citi de la tastatură un număr natural.&lt;br /&gt;
&lt;br /&gt;
==Date de ieşire==&lt;br /&gt;
Programul va afişa pe ecran valoarea cerută.&lt;br /&gt;
&lt;br /&gt;
==Restricţii şi precizări==&lt;br /&gt;
numărul citit va fi mai mic decât 2.000.000.000&lt;br /&gt;
&lt;br /&gt;
==Exemplu==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:32615&lt;br /&gt;
&lt;br /&gt;
;Ieşire&lt;br /&gt;
&lt;br /&gt;
:2&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Prima cifră a numărului dat este 3. În număr sunt două cifre mai mici decât 3.&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;
n = int(input(&amp;quot;Introduceți numărul: &amp;quot;))&lt;br /&gt;
# Extragem prima cifră a numărului&lt;br /&gt;
numar_cifre = len(str(n))&lt;br /&gt;
prima_cifra = n // (10 ** (numar_cifre - 1))&lt;br /&gt;
# Inițializăm variabila count&lt;br /&gt;
count = 0&lt;br /&gt;
# Iterăm prin fiecare cifră și comparăm cu prima_cifra&lt;br /&gt;
for cifra in str(n):&lt;br /&gt;
    if int(cifra) &amp;lt; prima_cifra:&lt;br /&gt;
        count += 1&lt;br /&gt;
# Afișăm valoarea lui count&lt;br /&gt;
print(&amp;quot;Numărul de cifre mai mici decât prima cifră este:&amp;quot;, count)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4225_-_Ad_Cif&amp;diff=6690</id>
		<title>4225 - Ad Cif</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4225_-_Ad_Cif&amp;diff=6690"/>
		<updated>2023-05-20T12:37:59Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4225/adcif]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dă un număr natural nenul n. Trebuie să determinați suma anumitor cifre din n. O cifră poate fi adunată la sumă numai dacă ea este strict mai mare decât toate celelalte din dreapta sa. De exemplu, dacă n = 3712531, atunci suma va fi 7+5+3+1. De exemplu, 7 se adaugă la sumă pentru că în dreapta sa se află cifrele 1,2,5,3,1, toate strict mai mici. La fel, la sumă s-a adunat 3 deoarece în dreapta sa se află doar cifra 1. S-a adunat și 1 pentru că în dreapta sa nu se află nicio cifră.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul S, reprezentând suma cifrelor menționate în cerință.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ n ≤ 2.000.000.000&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:4713&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:10&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se adună cifrele 7+3 = 10.&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:12345&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:5&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Suma este formată doar din cifra unităților.&lt;br /&gt;
&lt;br /&gt;
==Exemplul 3==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:987654321&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:45&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Se adună toate cifrele.&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;
n = int(input())&lt;br /&gt;
s = 0&lt;br /&gt;
max_dreapta = -1&lt;br /&gt;
while n &amp;gt; 0:&lt;br /&gt;
    cifra = n % 10&lt;br /&gt;
    if cifra &amp;gt; max_dreapta:&lt;br /&gt;
        s += cifra&lt;br /&gt;
        max_dreapta = cifra&lt;br /&gt;
    n //= 10&lt;br /&gt;
print(s)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3303_-_Nr_Curat&amp;diff=6689</id>
		<title>3303 - Nr Curat</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3303_-_Nr_Curat&amp;diff=6689"/>
		<updated>2023-05-20T12:37:11Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3303/nrcurat]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau cel mult 1000 numere naturale mai mici decât 100.000.000. Să se stabilească despre fiecare număr dacă este sau nu curat.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare nrcurat.in conține pe prima linie cel mult 1000 numere naturale mai mici decât 100.000.000, separate prin spații.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fișierul de ieșire nrcurat.out va conține pe prima linie pentru fiecare număr x din fișierul de intrare valoarea 1 dacă x este curat sau 0 în caz contrar. Valorile sunt separate prin câte un spațiu.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
în fișier sunt cel mult 1000 de numere naturale mai mici decât 100.000.000&lt;br /&gt;
&lt;br /&gt;
==Exemplu==&lt;br /&gt;
;nrcurat.in&lt;br /&gt;
&lt;br /&gt;
:345 18 53 986310 467 1638&lt;br /&gt;
&lt;br /&gt;
;nrcurat.out&lt;br /&gt;
&lt;br /&gt;
:0 1 0 1 0 1&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Numerele 18, 986310 și 1638 sunt numere curate.&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;
with open(&#039;nrcurat.in&#039;, &#039;r&#039;) as f_in, open(&#039;nrcurat.out&#039;, &#039;w&#039;) as f_out:&lt;br /&gt;
    # citim numerele din fisierul de intrare&lt;br /&gt;
    numbers = list(map(int, f_in.readline().strip().split()))&lt;br /&gt;
    # parcurgem fiecare numar&lt;br /&gt;
    for n in numbers:&lt;br /&gt;
        clean = True&lt;br /&gt;
        # parcurgem fiecare cifra a numarului&lt;br /&gt;
        for digit in str(n):&lt;br /&gt;
            if digit == &#039;0&#039;:&lt;br /&gt;
                continue&lt;br /&gt;
            if n % int(digit) != 0:&lt;br /&gt;
                clean = False&lt;br /&gt;
                break&lt;br /&gt;
        # scriem rezultatul in fisierul de iesire&lt;br /&gt;
        f_out.write(&#039;1 &#039; if clean else &#039;0 &#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3620_-_Cmmk&amp;diff=6688</id>
		<title>3620 - Cmmk</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3620_-_Cmmk&amp;diff=6688"/>
		<updated>2023-05-20T12:36:26Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3620/cmmk]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se dau numerele naturale n și k, unde k este o cifră. Să se verifice dacă toate cifrele lui n sunt mai mici sau egale decât k.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numerele n și k.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran mesajul DA dacă toate cifrele lui n sunt mai mici sau egale decât k, sau mesajul NU dacă există măcar o cifră a lui n strict mai mare decât k.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
0 ≤ n ≤ 2.000.000.000&lt;br /&gt;
0 ≤ k ≤ 9&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:36125 7&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:DA&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:819 5&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:NU&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;
n = int(input(&amp;quot;Introduceți numărul n: &amp;quot;))&lt;br /&gt;
k = int(input(&amp;quot;Introduceți cifra k: &amp;quot;))&lt;br /&gt;
# Convertim numărul n într-un șir de caractere&lt;br /&gt;
n_str = str(n)&lt;br /&gt;
# Verificăm fiecare cifră din șir&lt;br /&gt;
for cifra in n_str:&lt;br /&gt;
    if int(cifra) &amp;gt; k:&lt;br /&gt;
        print(&amp;quot;NU&amp;quot;)&lt;br /&gt;
        break&lt;br /&gt;
# Dacă am iterat prin toate cifrele și nu am găsit nicio cifră mai mare decât k, afișăm &amp;quot;DA&amp;quot;&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;DA&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3905_-_Suma_Perm_n9&amp;diff=6687</id>
		<title>3905 - Suma Perm n9</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3905_-_Suma_Perm_n9&amp;diff=6687"/>
		<updated>2023-05-20T12:35:32Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3905/suma-perm-n9]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Scrieți un program care citește un număr natural n și care să calculeze și să afișeze suma S a tuturor numerelor obținute prin rearanjarea cifrelor lui n. Numărul n are toate cifrele distincte.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul S, reprezentând suma cerută.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
n are cel mult 9 cifre și are cifrele distincte.&lt;br /&gt;
&lt;br /&gt;
==Exemplu==&lt;br /&gt;
&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:123&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
:1332&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Numere obținute din 123 prin amestecarea cifrelor sunt 123, 132, 213, 231, 312 și 321, iar suma lor este 1332.&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;
import itertools&lt;br /&gt;
&lt;br /&gt;
n = int(input(&amp;quot;Introduceți un număr cu cifre distincte: &amp;quot;))&lt;br /&gt;
suma = 0&lt;br /&gt;
lungime_n = len(str(n))&lt;br /&gt;
&lt;br /&gt;
# Generăm toate permutările distincte ale cifrelor numărului n&lt;br /&gt;
permutari = set(itertools.permutations(str(n), lungime_n))&lt;br /&gt;
&lt;br /&gt;
# Iterăm prin fiecare permutare și adăugăm numărul la suma&lt;br /&gt;
for permutare in permutari:&lt;br /&gt;
    numar = int(&amp;quot;&amp;quot;.join(permutare))&lt;br /&gt;
    suma += numar&lt;br /&gt;
&lt;br /&gt;
# Afișăm suma&lt;br /&gt;
print(&amp;quot;Suma tuturor numerelor obținute prin rearanjarea cifrelor lui&amp;quot;, n, &amp;quot;este:&amp;quot;, suma)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4231_-_Mingx&amp;diff=6686</id>
		<title>4231 - Mingx</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4231_-_Mingx&amp;diff=6686"/>
		<updated>2023-05-20T12:34:47Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/4231/mingx]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Se citește numărul natural nenul n și o cifră x. Să se determine cifra minimă a lui n, strict mai mare decât x.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n și cifra x.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran cifra minimă a lui n, strict mai mare decât x. Dacă nu există această cifră, afișați -1.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ n ≤ 1018&lt;br /&gt;
0 ≤ x ≤ 9&lt;br /&gt;
==Exemplu==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:395445271 4&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
&lt;br /&gt;
5:&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
n, x = map(int, input().split())&lt;br /&gt;
min_digit = -1  &lt;br /&gt;
while n &amp;gt; 0:&lt;br /&gt;
    last_digit = n % 10&lt;br /&gt;
    n //= 10 &lt;br /&gt;
    if last_digit &amp;gt; x:&lt;br /&gt;
        min_digit = last_digit&lt;br /&gt;
        break&lt;br /&gt;
print(min_digit)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0065_-_Produs_Cifre_Impare&amp;diff=6685</id>
		<title>0065 - Produs Cifre Impare</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0065_-_Produs_Cifre_Impare&amp;diff=6685"/>
		<updated>2023-05-20T12:33:47Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/65/produscifreimpare]&lt;br /&gt;
==Cerinţă==&lt;br /&gt;
Să se scrie un program care să determine produsul cifrelor impare ale unui număr natural citit de la tastatură.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul va citi de la tastatură un număr natural.&lt;br /&gt;
&lt;br /&gt;
==Date de ieşire==&lt;br /&gt;
Programul va afişa pe ecran produsul cifrelor impare ale numărului citit.&lt;br /&gt;
&lt;br /&gt;
==Restricţii şi precizări==&lt;br /&gt;
numărul citit va fi mai mic decât 231&lt;br /&gt;
dacă numărul nu conţine cifre impare atunci se va afişa valoarea -1&lt;br /&gt;
&lt;br /&gt;
==Exemplu==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:2705&lt;br /&gt;
&lt;br /&gt;
;Ieşire&lt;br /&gt;
&lt;br /&gt;
:35&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;
numar = int(input(&amp;quot;Introduceți un număr natural: &amp;quot;))&lt;br /&gt;
if numar == 0:&lt;br /&gt;
    print(&amp;quot;Produsul cifrelor impare este: 0&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    produs = 1&lt;br /&gt;
    while numar &amp;gt; 0:&lt;br /&gt;
        cifra = numar % 10&lt;br /&gt;
        if cifra % 2 == 1:&lt;br /&gt;
            produs *= cifra&lt;br /&gt;
        numar //= 10&lt;br /&gt;
if produs == 1:&lt;br /&gt;
        print(&amp;quot;Numărul nu conține cifre impare.&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Produsul cifrelor impare este:&amp;quot;, produs)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3077_-_Suma_Prefixe&amp;diff=6684</id>
		<title>3077 - Suma Prefixe</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3077_-_Suma_Prefixe&amp;diff=6684"/>
		<updated>2023-05-20T12:32:58Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/3077/suma-prefixe]&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Scrieți un program care citește un număr natural nenul n și care calculează suma S tuturor numerelor distincte prefixe pentru n.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură numărul n, cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran numărul S.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
1 ≤ n ≤ 2.000.000.000&lt;br /&gt;
&lt;br /&gt;
==Exemplu==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:12345&lt;br /&gt;
&lt;br /&gt;
;Iesire&lt;br /&gt;
&lt;br /&gt;
:13715&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 calculeaza_suma_prefixe(numar, prefix=0):&lt;br /&gt;
   if numar == 0:&lt;br /&gt;
        return prefix&lt;br /&gt;
     suma = 0&lt;br /&gt;
  for cifra in range(1, numar % 10 + 1):&lt;br /&gt;
        suma += calculeaza_suma_prefixe(numar // 10, prefix + cifra)&lt;br /&gt;
    return suma&lt;br /&gt;
n = int(input(&amp;quot;Introduceți un număr natural nenul: &amp;quot;))&lt;br /&gt;
suma_prefixe = calculeaza_suma_prefixe(n)&lt;br /&gt;
print(&amp;quot;Suma tuturor prefixelor distincte pentru numărul&amp;quot;, n, &amp;quot;este&amp;quot;, suma_prefixe)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0010_-_Suma_Cifrelor&amp;diff=6683</id>
		<title>0010 - Suma Cifrelor</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0010_-_Suma_Cifrelor&amp;diff=6683"/>
		<updated>2023-05-20T12:30:52Z</updated>

		<summary type="html">&lt;p&gt;Pop Giulia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/10/suma-cifrelor]&lt;br /&gt;
==Cerință==&lt;br /&gt;
Calculaţi suma cifrelor numărului dat.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul va citi de la tastatură un număr natural.&lt;br /&gt;
&lt;br /&gt;
==Date de iesire==&lt;br /&gt;
Programul va afişa pe ecran suma cifrelor numărului citit.&lt;br /&gt;
&lt;br /&gt;
==Restrictii si precizari==&lt;br /&gt;
numărul citit va fi mai mic decât 2.000.000.000&lt;br /&gt;
&lt;br /&gt;
==Exemplu==&lt;br /&gt;
;Intrare&lt;br /&gt;
&lt;br /&gt;
:2705&lt;br /&gt;
&lt;br /&gt;
;Iesire&lt;br /&gt;
&lt;br /&gt;
:14&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[x , y] = input().split()&lt;br /&gt;
x = int(x)&lt;br /&gt;
y = int(y)&lt;br /&gt;
print(x + y)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop Giulia</name></author>
	</entry>
</feed>