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
2978 - Aur
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!
Sursa: [https://www.pbinfo.ro/probleme/2978/aur] ==Enunt== 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? ==Cerința== Cunoscând cele N numere naturale dictate de Păcală, scrieți un program care să determine: 1. numărul cifrelor scrise pe tăbliță de Tândală; 2. ce-a de-a K-a cifră de pe tăbliță, în ordine de la stânga la dreapta; 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. ==Date de intrare== Fișierul de intrare aur.in conţine: - pe prima linie un număr natural C care reprezintă numărul cerinței și poate avea valorile 1, 2 sau 3. - 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. - 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ă. ==Date de ieșire== 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. ==Restricții și precizări== 1 ≤ N ≤ 100.000 și 1 ≤ K ≤ 900.000; Se garantează ca există cel puțin K cifre scrise pe tăbliță. 1 ≤ P ≤ 18; Se garantează ca există cel puțin P cifre scrise pe tăbliță. toate numere dictate de Păcală sunt nenule și au cel mult 9 cifre fiecare; 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. În concurs s-au acordat 10 puncte din oficiu. Aici se acordă pentru exemplele din enunț. ==Exemplul 1:== aur.in 1 7 25 9 13 459 2 79 9 aur.out 12 ==Explicație== Se rezolvă cerința 1. Tândală a scris pe tăbliță: 259134592799. Numărul cifrelor scrise de Tândală este 12. ==Exemplul 2:== aur.in 2 7 10 25 9 13 459 2 79 9 aur.out 7 ==Explicație== 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. ==Exemplul 3:== aur.in 3 7 4 25 9 13 459 2 79 9 aur.out 9279 ==Explicație== 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. ==Încărcare soluție== <syntaxhighlight lang="python" line> # Citim cerința și datele de intrare cerinta = int(input()) n, m = map(int, input().split()) numere = list(map(int, input().split())) if cerinta == 1: # Cerința 1: numărul de cifre din șirul de numere print(len("".join(map(str, numere)))) elif cerinta == 2: # Cerința 2: cifra de pe poziția m cifra_curenta = 0 for numar in numere: for cifra in str(numar): cifra_curenta += 1 if cifra_curenta == m: print(cifra) break if cifra_curenta == m: break elif cerinta == 3: # Cerința 3: cel mai mare număr format din P cifre p = m numar_maxim = 0 for i in range(len(numere) - p + 1): numar_curent = int("".join(map(str, numere[i:i+p]))) numar_maxim = max(numar_maxim, numar_curent) print(numar_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