Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
1612 - Cifre10
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Elevii clasei pregătitoare se joacă la matematică cu numere. Învățătoarea are un săculeț plin cu jetoane, pe fiecare dintre ele fiind scrisă câte o cifră. Fiecare elev și-a ales din săculeț mai multe jetoane, cu care și-a format un număr. Pentru ca totul să fie mai interesant, elevii s-au grupat în perechi. Doamna învățătoare a oferit fiecărei perechi de elevi câte o cutiuță pentru ca cei doi să își pună împreună jetoanele. De exemplu, dacă unul din elevii unei echipe și-a ales jetoane cu care a format numărul <code>5137131</code> iar celălalt elev și-a ales jetoane cu care a format numărul <code>6551813</code>, atunci cutiuța echipei va conţine <code>5</code> jetoane cu cifra <code>1</code>, câte <code>3</code> jetoane cu cifra <code>3</code> şi <code>5</code> şi câte un jeton cu cifrele <code>6</code>, <code>7</code> şi <code>8</code>. Doar Andrei stătea supărat pentru că numărul de elevi al clasei era impar iar el nu avea partener, motiv pentru care nu și-a mai ales jetoane. Din această cauză, doamna învățătoare i-a spus: “- Alege o echipă din a cărei cutiuță poţi lua o parte din jetoane, dar ai grijă ca fiecare dintre cei doi elevi să-și mai poată forma numărul lui din jetoanele rămase, iar tu să poți forma un număr nenul cu jetoanele extrase!“. Dar cum Andrei nu se mulţumea cu puţin, a vrut să aleagă acea echipă din a cărei cutiuță îşi poată forma un număr de valoare maximă folosind jetoanele extrase. = Cerința = Scrieţi un program care să citească numărul <code>N</code> de cutiuțe și numerele formate de elevii fiecărei perechi și care să determine: 1) Numărul de cutiuțe din care Andrei poate lua jetoane respectând condiția pusă de doamna învățătoare; 2) Care este cel mai mare număr nenul pe care îl poate forma Andrei respectând aceeași condiție. = Date de intrare = Fișierul de intrare <code>input.txt</code> conține pe prima linie numărul natural <code>P</code> reprezentând cerința din problemă care trebuie rezolvată. Pe a doua linie numărul natural <code>N</code>, iar pe următoarele <code>N</code> linii câte două numere naturale separate printr-un spațiu reprezentând numerele formate de elevii fiecărei perechi. = Date de ieșire = * Dacă valoarea lui <code>P</code> este <code>1</code>, fişierul de ieşire <code>output.txt</code> va conţine pe prima linie un număr natural reprezentând rezolvarea primei cerințe, adică numărul de cutiuțe din care Andrei poate lua jetoane. * Dacă valoarea lui <code>P</code> este <code>2</code>, fişierul de ieşire <code>output.txt</code> va conţine pe prima linie un număr natural reprezentând rezolvarea celei de a doua cerințe, adică numărul maxim pe care îl poate forma Andrei. = Restricții și precizări = * <code>0 < N ≤ 10000</code> == Exemplul 1 == input.txt: 1 3 1010 2000 12 34 1515 552 output.txt: 1 Explicație: Cu jetoanele extrase din prima cutiuță Andrei nu poate forma un număr diferit de <code>0</code>. Din a doua cutiuță Andrei nu poate lua jetoane astfel încât cei doi elevi să își mai poată forma numerele <code>12</code> și <code>34</code>. Andrei poate extrage jetoane doar din a treia cutiuță(două jetoane cu cifra <code>5</code>). == Exemplul 2 == input.txt: 2 5 16815 38861 12 385 5137131 6551813 15033 11583 4704 240 output.txt: 5311 Explicație: Numărul maxim pe care Andrei îl poate forma este <code>5311</code> și se obține din cutiuța a treia. == Exemplul 3 == input.txt: 2 99999999999999 16815 38861 12 385 5137131 6551813 15033 11583 4704 240 Output: Input-ul nu convine conditiilor == Rezolvare == <syntaxhighlight lang="python3" line="1"> def verificare(n): if not(1<=n<=1000): print("Input-ul nu convine conditiilor") exit() with open("input.txt", "r") as f, open("output.txt", "w") as g: a = [0] * 10 b = [0] * 10 n, i, x, y, j, k, p, cod, cate, maxim, minim = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 p = int(f.readline()) n = int(f.readline()) verificare(n) for i in range(1, n + 1): x, y = map(int, f.readline().split()) a = [0] * 10 b = [0] * 10 while x: a[x % 10] += 1 x = x // 10 while y: b[y % 10] += 1 y = y // 10 cod = 0 for j in range(9, -1, -1): if a[j] > 0 and b[j] > 0: minim = min(a[j], b[j]) for k in range(1, minim + 1): cod = cod * 10 + j if cod: cate += 1 if cod > maxim: maxim = cod if p == 1: g.write(f"{cate}") else: g.write(f"{maxim}") </syntaxhighlight>
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width