Introducción a la Programación
Trimestre 2004 Invierno --- Tarea 4
  Miércoles 24 de Marzo de 2004

Hidrocarburos Lineales

Un hidrocarburo lineal es una cadena de átomos de carbono (C) unidos entre sí con enlaces sencillos, dobles o triples. Es posible que un cierto átomo de carbono no use todos sus enlaces posibles (un total de 4) para unirse a otros átomos de carbono. En este caso, los enlaces restantes se hacen con átomos de hidrógeno (H). Un hidrocarburo lineal se puede especificar por la secuencia de enlaces. Por ejemplo, si un hidrocarburo tiene secuencia de enlaces (simple, simple, doble, simple, triple, simple, doble) entonces su fórmula semidesarrollada es

CH3-CH2-CH=CH-C#C-CH=CH2

(hemos usado el símbolo # para indicar un enlace triple). Observa que  se escribe H3, H2,  H o nada, según el carbono correspondiente esté enlazado con tres, dos, uno o ningún hidrógeno. Por supuesto, si solamente damos una secuencia de enlaces, es posible que no corresponda con un hidrocarburo lineal. Por ejemplo, la secuencia (simple, doble, triple, simple, doble, triple) no corresponde con un hidrocarburo lineal, pues el tercer y sexto carbonos necesitarían tener al menos 5 enlaces. Finalmente, las fórmulas semidesarrolladas de hidrocarburos se escriben al revés si eso hace que un enlace de mayor multiplicidad quede más cerca del principio. En nuestro primer ejemplo, debimos haber escrito la fórmula semidesarrollada como

CH2=CH-C#C-CH=CH-CH2-CH3,

pues así queda un enlace doble entre los primeros dos carbonos, a diferencia de uno simple.

Especificación

La entrada consiste de un entero N que tendrá un valor entre 1 y 1,000, seguido de N enteros en el conjunto {1, 2, 3}. La salida consiste de la fórmula semidesarrollada del hidrocarburo correspondiente (ordenada apropiadamente) o del letrero "ERROR EN" seguido de  la lista de todas las posiciones donde un carbono tiene más enlaces de los posibles. El nombre de tu programa deberá ser hidroNN.c, donde NN son los dos últimos dígitos de la cuenta que le fue asignada a alguno de los miembros del equipo. Los archivos hidroNN.o e hidroNN.exe no deben ser entregados.

Ejemplos

Recuerda que tu programa no debe imprimir los letreros ENTRADA o SALIDA, ni borrar la pantalla, etc.

ENTRADA: 7 1 1 2 1 3 1 2     SALIDA:  CH2=CH-C#C-CH=CH-CH2-CH3
ENTRADA: 4 1 3 1 1           SALIDA:  CH3-C#C-CH2-CH3
ENTRADA: 6 1 2 3 1 2 3       SALIDA:  ERROR EN 3 6