¿Que debo hacer?
Descripción
En este problema se dispone de dos números enteros positivos n
y m
, los cuales pueden tener como máximo 9 dígitos.
Suponga que se desean ordenar de manera ascendente los dígitos que componen cada número n
o m
, pero la única operación permitida es el intercambio de dígitos en posiciones adyacentes. Es decir, si n=1243
y realizamos el intercambio de los dígitos 4
<->3
, que están juntos o en posiciones adyacentes, el resultado sería n=1234
, y los dígitos se ordenarían.
Ahora bien para otro caso, con n=321
, NO ESTA PERMITIDO el intercambio entre los dígitos 3
<->1
, porque no se encuentran en posiciones adyacentes. La solución en este caso consiste en realizar 3 intercambios de los dígitos en el siguiente orden: 3
<->2
, 3
<->1
y 2
<->1
, y de este esta manera los dígitos de n
se ordenan de manera ascendente 123
.
Entrada
En la primera línea se muestra el número n
y el número m
, separados por un espacio.
Salida
El número n
y m
se deben imprimir en una línea por separado,incluyendo un guión (-) y posteriormente el número mínimo de intercambios necesarios para ordenar sus dígitos de manera ascendente.
En la primera línea se debe imprimir el número n
ó m
, que necesita la menor cantidad de intercambios, y en la segunda línea el número que requiere la mayor cantidad de intercambios. Si ambos números requieren la misma cantidad de intercambios, se debe imprimir en la primera línea el número n
.
Ejemplo
Entrada
321 132
Salida
132-1
321-3
Lo intente con arreglos pero no puedo ordenarlos.
PROGRAMA EN C
1 respuesta
- hace 3 semanas
Usa el algoritmo Bubble Sort; es uno de los algoritmos más sencillos e intercambia sólo posiciones adyacentes.