• Publicidad

Reto: 433 Banco (no muy O.C.R.)

Aprende Perl

Reto: 433 Banco (no muy O.C.R.)

Notapor explorer » 2011-06-16 14:12 @633

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í:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
     _   _       _   _   _   _   _   _
  |  _|  _| |_| |_  |_    | |_| |_| | |
  | |_   _|   |  _| |_|   | |_|  _| |_|
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


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
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
     _   _       _   _   _   _   _
  |  _|  _| |_| |_  |_    | |_| |_|
  |  _   _|   |  _| |_|   | |_|  _|
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

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
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
4
     _   _       _   _   _   _   _
  |  _|  _| |_| |_  |_    | |_| |_|
  |  _   _|   |  _| |_|   | |_|  _|
     _   _   _   _   _   _       _
|_| |_| | | | | |_    |   |   | |_
  |  _| |_| |_| |_|   |   |   |  _|
 _   _   _   _   _   _   _   _   _
|_| |_| |_| |_| |_| |_| |_| |_| |_|
|_| |_| |_| |_| |_| |_| |_| |_| |_|
 _       _   _   _   _   _   _   _
|_|   | |_| |_| |_| |_| |_| |_| |_|
|_|   | |_| |_| |_| |_| |_| |_| |_|
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Ejemplo de la salida
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
123456789
ambiguous
failure
878888888
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

(Problema 433 de la ACM Contest Problems Archive)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Volver a Formación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado