rotire25

Time limit: 0.1s Memory limit: 64MB Input: rotire25.in Output: rotire25.out

George a primit ca temă la matematică următoarea problemă. Se dă un număr XX, asupra acestui număr se pot face următoarele transformări:

  1. În această ordine (toți acești 33 pași reprezintă o transformare):
    • se înmulțește numărul cu 55 (de exemplu: X=416X=416 devine 416⋅5=2080416 \cdot 5 = 2080)
    • se elimină toate zerourile din număr (20802080 devine 2828)
    • se oglindește numărul (2828 devine 8282)
  2. În această ordine (toți acești 33 pași reprezintă o transformare):
    • se înmulțește numărul cu 22 (de exemplu: X=32X = 32 devine 32⋅2=6432 \cdot 2 = 64)
    • se elimină toate zerourile din număr (6464 rămâne 6464)
    • se oglindește numărul (6464 devine 4646)

George trebuie să aplice alternativ cele două transformări asupra numărului XX. Prima dată aplică transformarea 11, apoi pe rezultatul obținut se aplică transformarea 22, apoi pe rezultat se aplică iar transformarea 11, apoi iar transformarea 22 și așa mai departe. George trebuie să aplice asupra numărului XX exact KK transformări, în ordinea descrisă mai sus.

Cerință

Dându-se numerele XX și KK determinaţi:

  1. Produsul dintre ultima cifră a numărului X⋅X⋅X⋅…⋅XX \cdot X \cdot X \cdot \ldots \cdot X (de KK ori) şi prima cifră a lui XX.
  2. Numărul rezultat după aplicarea celor KK transformări.

Date de intrare

Pe prima linie a fișierului de intrare rotire25.in se află trei numere separate prin câte un spațiu C,XC, X și KK. Dacă C=1C=1 se va rezolva doar prima cerință, iar dacă C=2C=2 se va rezolva doar a doua cerință.

Date de ieșire

Fișierul de ieșire rotire25.out va conține un singur număr. Dacă C=1C = 1, acest număr reprezintă rezultatul pentru prima cerinţă, iar dacă C=2C = 2, acest număr reprezintă rezultatul pentru a doua cerință.

Restricții și precizări

  • 1≤X≤9991 \leq X \leq 999;
  • 1≤K≤1 000 000 0001 \leq K \leq 1 \ 000 \ 000 \ 000;
  • Pentru teste în valoare de 2929 de puncte, C=1C = 1.
  • Pentru teste în valoare de 7171 de puncte, C=2C = 2.
  • Pentru teste în valoare de 77 puncte, C=1C = 1 și se garantează că numărul obținut în urma înmulțirilor este ≤1018\leq {10}^{18} (1 000 000 000 000 000 0001 \ 000 \ 000 \ 000 \ 000 \ 000 \ 000).
  • Pentru alte teste în valoare de 1111 puncte: C=1C = 1 și K≤100 000K \leq 100 \ 000.
  • Pentru teste în valoare de 3939 de puncte: C=2C = 2 și K≤100 000K \leq 100 \ 000.
  • Pentru alte teste în valoare de 99 puncte: C=2C = 2 și X≤9X \leq 9.

Exemplul 1

rotire25.in

1 27 3

rotire25.out

6

Explicație

Se rezolvă cerinţa 11: X=27,K=3X = 27, K = 3. 27⋅27⋅27=19 683  ⟹  27 \cdot 27 \cdot 27 = 19 \ 683 \implies ultima cifră este 33. Prima cifră a lui 2727 este 22, deci rezultatul este 2⋅3=62 \cdot 3 = 6

Exemplul 2

rotire25.in

2 13 3

rotire25.out

551

Explicație

Pentru al doilea exemplu, se rezolvă cerința 22: X=13,K=3X = 13, K = 3.
Se fac următoarele transformări:

  • 13⋅5=6513 \cdot 5 = 65, scoatem zerourile și rotim   ⟹  56\implies 56;
  • 56⋅2=11256 \cdot 2 = 112, scoatem zerourile și rotim   ⟹  211\implies 211;
  • 211⋅5=1055211 \cdot 5 = 1055, scoatem zerourile   ⟹  155\implies 155; rotim   ⟹  551\implies 551;

Exemplul 3

rotire25.in

2 42 1782321

rotire25.out

12

Explicație

Se rezolvă cerinţa 22: X=42,K=1782321X = 42, K = 1782321.
După ce se fac cele KK transformări se ajunge la numărul 1212.

Log in or sign up to be able to send submissions!