Changement de base

Alice et Bob sont lassés des capacités trop limitées de leur calculatrice et ont décidé d'en programmer une eux-mêmes.

Pour eux, la première étape consiste à écrire un programme capable de convertir un nombre d'une base donnée en une autre.

Référez-vous a l'introduction de l'épreuve pour plus de détails sur la notation des nombres en base quelconque.

Limites de temps et de mémoire (Python)

  • Temps : 0,25 s sur une machine à 1 GHz.
  • Mémoire : 1 000 ko.

Contraintes

  • 2 <= B <= 256, où B est la base dans laquelle est représenté un nombre.
  • 0 <= N < 100 000 000, le nombre à convertir d'une base à l'autre.

Entrée

La première ligne de l'entrée contient trois entiers : B1, B2, et C, respectivement la base de départ, la base d'arrivée et la taille du nombre (en nombre de chiffres) dans la base de départ.

La seconde ligne contient l'entier N à convertir, dans sa base de départ, sous la forme de C entiers représentant chacun un chiffre.

Sortie

Le nombre exprimé dans la base d'arrivée (si le nombre est non-nul, il ne doit pas commencer pas un chiffre nul). Ce nombre doit être fourni au même format que celui de l'entrée, comme indiqué dans l'introduction de l'épreuve.

Exemples

Exemple 1

entrée :

10 2 2
4 2

sortie :

1 0 1 0 1 0

Exemple 2

entrée :

100 10 3
2 20 3

sortie :

2 2 0 0 3

Commentaires

Dans l'exemple 1, le nombre de 2 chiffres fourni en entrée est 42 en base décimale et s'écrit 101010 en base binaire.

Faites attention aux deux « 0 » successifs. Par exemple dans l'exemple 2, « 2 20 3 en base 100 » = 2 * 1002 + 20 * 100 + 3 = 2 * 104 + 2 * 103 + 3 = « 22003 en base 10 ».


Source : https://www.france-ioi.org/ Créé par : Lucien Pech.