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