4018 - Mos Craciun 3: Difference between revisions
Pop Giulia (talk | contribs) Pagină nouă: Enunt Cunoscutul programator Văndămel are la dispoziție o matrice binară cu <code>n</code> linii (numerotate de la <code>1</code> la <code>n</code>) și <code>m</code> coloane (numerotate de la <code>1</code> la <code>m</code>). Văndămel poate efectua, de câte ori e posibil, următoarea operație: alege două poziții vecine pe linie sau pe coloană și care conțin ambele valoarea <code>1</code> și le transformă în <code>0</code>. De exemplu, în matricea: <code>... |
Pop Giulia (talk | contribs) No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/4018/moscraciun3] | |||
==Cerința== | |||
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. | |||
==Date de intrare== | |||
Programul citește de la tastatură numerele n p k. | |||
==Date de ieșire== | |||
Programul va afișa pe ecran noul cod. | |||
==Restricții și precizări== | |||
1 ≤ n < 1000000000000000000 | |||
dacă n nu are cel puțin p+k cifre, se va afișa mesajul imposibil. | |||
==Exemplu:== | |||
= | |||
= | |||
= | |||
= | |||
Intrare | Intrare | ||
1428429 2 3 | |||
Ieșire | Ieșire | ||
== Încărcare soluție == | 4128924 | ||
==Încărcare soluție== | |||
<syntaxhighlight lang="python" line> | |||
n, p, k = input().split() | |||
n = int(n) | |||
p = int(p) | |||
k = int(k) | |||
if len(str(n)) < p + k: | |||
print("imposibil") | |||
exit() | |||
n_str = str(n) | |||
n_str = n_str[:p][::-1] + n_str[p:] | |||
n_str = n_str[:-k] + n_str[-k:][::-1] | |||
new_n = int(n_str) | |||
print(new_n) | |||
</syntaxhighlight> |
Latest revision as of 12:45, 20 May 2023
Sursa: [1]
Cerința[edit | edit source]
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.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele n p k.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran noul cod.
Restricții și precizări[edit | edit source]
1 ≤ n < 1000000000000000000 dacă n nu are cel puțin p+k cifre, se va afișa mesajul imposibil.
Exemplu:[edit | edit source]
Intrare
1428429 2 3 Ieșire
4128924
Încărcare soluție[edit | edit source]
<syntaxhighlight lang="python" line> n, p, k = input().split() n = int(n) p = int(p) k = int(k) if len(str(n)) < p + k:
print("imposibil") exit()
n_str = str(n) n_str = n_str[:p][::-1] + n_str[p:] n_str = n_str[:-k] + n_str[-k:][::-1] new_n = int(n_str) print(new_n) </syntaxhighlight>