Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Formación » Reto: 433 Banco (no muy O.C.R.) Responder al tema
Nuevo tema


Página 1 de 1  [ 1 mensaje ] 
 
Nota 2011-06-16 14:12 @633
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Reto: 433 Banco (no muy O.C.R.)
Los Bancos, siempre intentando incrementar sus beneficios, piden a los expertos programadores por un sistema que pueda leer cheques de banco; esto haría el procesado de cheques mucho más barato. Uno de sus ideas era usar reconocimiento óptico de caracteres (OCR) para reconocer cuentas de bancos impresos usando segmentos de 7 líneas.

Una vez que el cheque ha sido escaneado, otro software de procesado de imagen convertirá las barras verticales y horizontales a barras '|' y guiones bajos '_' ASCII.

Las versiones de 7 segmentos ASCII de los diez dígitos son así:
Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
     _   _       _   _   _   _   _   _
  |  _|  _| |_| |_  |_    | |_| |_| | |
  | |_   _|   |  _| |_|   | |_|  _| |_|


Una cuenta del banco tiene un número de 9 dígitos con una suma de control. Para un número de cuenta válido, se tiene la siguiente ecuación: (d1 + 2 x d2 + 3 x d3 + ... + 9 x d9) mod 11 = 0. Los dígitos están numerados de derecha a izquierda, así: d9d8d7d6d5d4d3d2d1.

Desafortunadamente, el escáner, algunas veces, comete errores: algunos segmentos pueden faltar. Tu tarea es escribir un programa que deduzca el número original, asumiendo que:

* cuando la entrada representa un número de cuenta válido, es el número original

* al menos un dígito está mal

* la imagen escaneada no contiene segmentos extra.

Por ejemplo, la siguiente entrada
Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
     _   _       _   _   _   _   _
  |  _|  _| |_| |_  |_    | |_| |_|
  |  _   _|   |  _| |_|   | |_|  _|

será considerada como "123456789".


Especificación de la entrada

El fichero de entrada comienza con una línea con un entero que especifica el número de números de cuenta que hay que procesar. Cada número de cuenta ocupa 3 líneas de 27 caracteres.

Especificación de la salida

Por cada test, la salida contiene una línea con 9 dígitos si puede ser determinado el número de cuenta correcto; la cadena "failure" si no se encontraron soluciones y "ambiguous" si se encontró más de una solución.

Ejemplo de la entrada
Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
4
     _   _       _   _   _   _   _
  |  _|  _| |_| |_  |_    | |_| |_|
  |  _   _|   |  _| |_|   | |_|  _|
     _   _   _   _   _   _       _
|_| |_| | | | | |_    |   |   | |_
  |  _| |_| |_| |_|   |   |   |  _|
 _   _   _   _   _   _   _   _   _
|_| |_| |_| |_| |_| |_| |_| |_| |_|
|_| |_| |_| |_| |_| |_| |_| |_| |_|
 _       _   _   _   _   _   _   _
|_|   | |_| |_| |_| |_| |_| |_| |_|
|_|   | |_| |_| |_| |_| |_| |_| |_|


Ejemplo de la salida
Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
123456789
ambiguous
failure
878888888

(Problema 433 de la ACM Contest Problems Archive)

_________________
JF^D Perl programming


Responder al tema  [ 1 mensaje ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO