<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1059_-_Schimb_Cifre</id>
	<title>1059 - Schimb Cifre - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1059_-_Schimb_Cifre"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1059_-_Schimb_Cifre&amp;action=history"/>
	<updated>2026-05-01T10:16:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1059_-_Schimb_Cifre&amp;diff=5279&amp;oldid=prev</id>
		<title>Tamas Claudia at 18:54, 28 April 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1059_-_Schimb_Cifre&amp;diff=5279&amp;oldid=prev"/>
		<updated>2023-04-28T18:54:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=1059_-_Schimb_Cifre&amp;amp;diff=5279&amp;amp;oldid=931&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1059_-_Schimb_Cifre&amp;diff=931&amp;oldid=prev</id>
		<title>Tamas Claudia: Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/1059/schimbcifre]  == Cerinţa == Se dă un număr natural &#039;&#039;&#039;numar&#039;&#039;&#039;. Asupra lui se efectuează &#039;&#039;&#039;serii_transformari&#039;&#039;&#039; serii de transformări, o serie constând în &#039;&#039;&#039;interschimbari&#039;&#039;&#039; transformări de genul: cifra de pe poziția i se interschimbă cu cifra de pe poziția j. Să se afişeze numărul obţinut după efectuarea celor &#039;&#039;&#039;serii_transformari&#039;&#039;&#039; serii de transformări. == Date de intrare == Programul citește de la tastat...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1059_-_Schimb_Cifre&amp;diff=931&amp;oldid=prev"/>
		<updated>2023-03-17T13:16:55Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/1059/schimbcifre]  == Cerinţa == Se dă un număr natural &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039;. Asupra lui se efectuează &amp;#039;&amp;#039;&amp;#039;serii_transformari&amp;#039;&amp;#039;&amp;#039; serii de transformări, o serie constând în &amp;#039;&amp;#039;&amp;#039;interschimbari&amp;#039;&amp;#039;&amp;#039; transformări de genul: cifra de pe poziția i se interschimbă cu cifra de pe poziția j. Să se afişeze numărul obţinut după efectuarea celor &amp;#039;&amp;#039;&amp;#039;serii_transformari&amp;#039;&amp;#039;&amp;#039; serii de transformări. == Date de intrare == Programul citește de la tastat...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Sursă: [https://www.pbinfo.ro/probleme/1059/schimbcifre]&lt;br /&gt;
&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dă un număr natural &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039;. Asupra lui se efectuează &amp;#039;&amp;#039;&amp;#039;serii_transformari&amp;#039;&amp;#039;&amp;#039; serii de transformări, o serie constând în &amp;#039;&amp;#039;&amp;#039;interschimbari&amp;#039;&amp;#039;&amp;#039; transformări de genul: cifra de pe poziția i se interschimbă cu cifra de pe poziția j. Să se afişeze numărul obţinut după efectuarea celor &amp;#039;&amp;#039;&amp;#039;serii_transformari&amp;#039;&amp;#039;&amp;#039; serii de transformări.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;serii_transformari&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;interschimbari&amp;#039;&amp;#039;&amp;#039;, iar apoi &amp;#039;&amp;#039;&amp;#039;interschimbari&amp;#039;&amp;#039;&amp;#039; perechi de numere naturale, separate prin spații, fiecare pereche reprezentând pozițiile cifrelor care se interschimbă.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
Programul va afișa pe ecran numărul obținut în urma efectuării celor &amp;#039;&amp;#039;&amp;#039;serii_transformari&amp;#039;&amp;#039;&amp;#039; serii de transformări.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; 1 &amp;amp;les; numar &amp;amp;les; 1.000.000.000 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; 1 &amp;amp;les; serii_transformari &amp;amp;les; 2.000.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039; 1 &amp;amp;les; interschimbari &amp;amp;les; 10 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* prima cifră din scrierea lui &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039; se află pe poziția 1&lt;br /&gt;
* numerele din cele &amp;#039;&amp;#039;&amp;#039;interschimbari&amp;#039;&amp;#039;&amp;#039; perechi reprezentând pozițiile cifrelor care se interschimbă sunt mai mici sau egale cu numărul cifrelor lui &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* cifra &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; nu va ajunge pe prima poziţie în urma unei interschimbări&lt;br /&gt;
&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 1234 2 2&lt;br /&gt;
: 2 4&lt;br /&gt;
: 1 4&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 4132&lt;br /&gt;
 &lt;br /&gt;
== Explicație == &lt;br /&gt;
Se efectuează prima serie de transformări: &amp;#039;&amp;#039;&amp;#039;1234 → 1432 → 2431&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
A doua serie de transformări: &amp;#039;&amp;#039;&amp;#039;2431 → 2134 → 4132&amp;#039;&amp;#039;&amp;#039;&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;
numar, serii_transformari, interschimbari = map(int, input().split())&lt;br /&gt;
&lt;br /&gt;
k = numar&lt;br /&gt;
p = 0&lt;br /&gt;
sab = 0&lt;br /&gt;
&lt;br /&gt;
while k != 0:&lt;br /&gt;
    k //= 10&lt;br /&gt;
    p += 1&lt;br /&gt;
    sab = sab * 10 + p&lt;br /&gt;
&lt;br /&gt;
for k in range(1, interschimbari + 1):&lt;br /&gt;
    i, j = map(int, input().split())&lt;br /&gt;
&lt;br /&gt;
    if i &amp;gt; j:&lt;br /&gt;
        i, j = j, i&lt;br /&gt;
&lt;br /&gt;
    pi = 1&lt;br /&gt;
    pj = 1&lt;br /&gt;
&lt;br /&gt;
    for v in range(1, p - i + 1):&lt;br /&gt;
        pi *= 10&lt;br /&gt;
&lt;br /&gt;
    for v in range(1, p - j + 1):&lt;br /&gt;
        pj *= 10&lt;br /&gt;
&lt;br /&gt;
    ci = (sab // pi) % 10&lt;br /&gt;
    cj = (sab // pj) % 10&lt;br /&gt;
&lt;br /&gt;
    sab -= ci * pi&lt;br /&gt;
    sab -= cj * pj&lt;br /&gt;
    sab += cj * pi&lt;br /&gt;
    sab += ci * pj&lt;br /&gt;
&lt;br /&gt;
k = 0&lt;br /&gt;
nr = numar&lt;br /&gt;
&lt;br /&gt;
while True:&lt;br /&gt;
    k += 1&lt;br /&gt;
    a = sab&lt;br /&gt;
    suma = 0&lt;br /&gt;
    prod = 1&lt;br /&gt;
&lt;br /&gt;
    while a != 0:&lt;br /&gt;
        r = a % 10&lt;br /&gt;
        pc = 1&lt;br /&gt;
&lt;br /&gt;
        for i in range(1, p - r + 1):&lt;br /&gt;
            pc *= 10&lt;br /&gt;
&lt;br /&gt;
        c = (nr // pc) % 10&lt;br /&gt;
        suma += c * prod&lt;br /&gt;
        prod *= 10&lt;br /&gt;
        a //= 10&lt;br /&gt;
&lt;br /&gt;
    nr = suma&lt;br /&gt;
&lt;br /&gt;
    if nr == numar:&lt;br /&gt;
        break&lt;br /&gt;
&lt;br /&gt;
serii_transformari %= k&lt;br /&gt;
nr = numar&lt;br /&gt;
&lt;br /&gt;
for i in range(1, serii_transformari + 1):&lt;br /&gt;
    a = sab&lt;br /&gt;
    suma = 0&lt;br /&gt;
    prod = 1&lt;br /&gt;
&lt;br /&gt;
    while a != 0:&lt;br /&gt;
        r = a % 10&lt;br /&gt;
        pc = 1&lt;br /&gt;
&lt;br /&gt;
        for j in range(1, p - r + 1):&lt;br /&gt;
            pc *= 10&lt;br /&gt;
&lt;br /&gt;
        c = (nr // pc) % 10&lt;br /&gt;
        suma += c * prod&lt;br /&gt;
        prod *= 10&lt;br /&gt;
        a //= 10&lt;br /&gt;
&lt;br /&gt;
    nr = suma&lt;br /&gt;
&lt;br /&gt;
print(nr)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
</feed>