C/Visual C - Expo Camp

 
Vista:

Expo Camp

Publicado por Robert (1 intervención) el 16/04/2015 01:16:47
NECESITO AYUDA CON ESTE TRABAJO, QUIEN PUEDA APORTA IDEAS PARA POSIBLE SOLUCIÓN, POR FAVOR AYUDARME.


Una asociación de empresas privadas de desarrollo de software del país ha organizado una feria en una universidad muy reconocida en la región del Cibao Norcentral. Cada proyecto tiene un mostrador o vitrina donde se muestran ciertas informaciones sobre el proyecto, como la experiencia de sus desarrolladores, tecnolo gías involucradas, problema que resuelve, algoritmos empleados y otros aspectos diversos. En la fase de organización del evento, los líderes de proyectos cuelgan unas hojas en un muro, con el nombre del proyecto como título, escrito en mayúsculas para que se pueda diferenciar del resto del texto que se escribe en la misma.

Los estudiantes de esta universidad luego proceden a escribir sus nombres de usuario debajo del nombre del proyecto para indicar que están interesados en participar en el evento de demostración del proyecto. Un nombre de usuario es un texto en minúsculas que puede estar compuesto por letras y números, pero siempre debe empezar con una letra. El organizador del evento luego recopila todas las hojas de los proyectos y digita la información .
Su trabajo es interpretar esta información digitada por el organizador para totalizar la cantidad de estudiantes inscritos
en cada proyecto. Algunos estudiantes se pasan de entusiasmados y anotan su nombre de usuario en más de un proyecto.

A pesar de que esto se permite, sólo se deberían contar una sola vez. A los estudiantes se les pidió que se unieran como máximo a un proyecto, por lo que si un estudiante ya aparece en un proyecto no debe ser considerado en los demás. La universidad tiene un máximo de 10,000 estudiantes, y como mucho se anunciarán 100 proyectos.
Luego, se desea mostrar la lista de proyectos junto a la cantidad de estudiantes que tenga inscrito, ordenándolos por
nombre según el siguiente requerimiento:
Se sabe que el orden normal para ordenar texto es en orden alfabético, tal como se muestra a continuación:

ANDROIDSIS
ANFIBIUS
ANTENISIS
COMERCIALYS
GALILEO
TORRENT
TORRENTCIALYS
XIAOXIAO
XISTEMA

Las reglas normales que se siguen para ordenar son las siguientes:

1- Las primeras letras están en orden alfabético. Dentro de textos que tengan un mismo prefijo, como ocurre con
ANDROIDSIS, ANFIBIUS y ANTENISIS, en el cual su prefijo es AN, los textos se ordenan a partir del siguiente
caracter que sea diferente (en este ejemplo, con la D, la F y luego la T).

2- Un texto completo puede resultar ser un prefijo de otro texto, como ocurre con TORRENT y TORRENTCIALYS. En
este caso la de mayor cantidad de caracteres va después de la de menor.

3- Algunos estudiantes del departamento de Ingeniería de Sistemas y Computación de esta universidad quieren
reordenar los proyectos de una forma en la que algunos nombres de proyectos salgan primero que otros. Con el
propósito de cumplir su misión, a uno de ellos se les ha ocurrido la brillante idea de no utilizar el o rden
tradicional del alfabeto, sino usar como referencia el mismo alfabeto pero con un orden distinto para cada letra.
Por ejemplo, si se decide utilizar el orden alfabético LKJQWEMNBZXCSADPOIRTYUFGHV, entonces los nombres de los
proyectos anteriores quedarían ordenados de la siguiente manera:

XISTEMA
XIAOXIAO
COMERCIALYS
ANDROIDSIS
ANTENISIS
ANFIBIUS
TORRENT
TORRENTCIALYS
GALILEO

Las primeras letras de los nombres de los proyectos están en orden alfabético. Cuando hay palabras con igual prefijo, se ordena por la primera letra distinta, como ocurre con XISTEMA y XIAOXIAO, donde la S está primero que la A en el nuevo orden. Sin embargo, en este nuevo orden TORRENT va primero que TORRENTCIALYS porque TORRENT es un prefijo de TORRENTCIALYS.

Realice un programa en el que, dada una serie de proyectos, sus usuarios y un nuevo orden alfabético, totalice por
proyecto la cantidad de nombres de usuarios no repetidos entre ellos y muestre cada nombre del proyecto y su cantidad de estudiantes inscritos respetando el nuevo orden alfabético.
No deberá usar estructuras y deberá trabajar creando funciones con propósitos específicos.

Especificación de entrada
La entrada contiene varios casos de prueba, cada uno terminando con una línea que inicia con el dígito 1. El último caso de prueba es seguido por una línea que empieza con el dígito 0. Cada caso de prueba consiste de un nuevo orden alfabético y una o más hojas de proyectos. Cada hoja del proyecto consiste de una línea que contiene el nombre del proyecto en mayúsculas, seguido de los nombres de usuario de los estudiantes, en minúsculas, uno por cada línea.

Especificación de salida
Para cada caso de prueba, la salida será un resumen de cada hoja de proyecto. El resumen es una línea con el nombre del
proyecto seguido del número de estudiantes inscritos. Estas líneas deberán mostrarse ordenadas de mayor a menor por la
cantidad de estudiantes de cada proyecto. Si dos o más proyectos tienen la misma cantidad de estudiantes inscritos
deberán ser ordenados por el orden alfabético especificado en la entrada.

Ejemplo de entrada

IOPEWQJKLTSABNMCXZVGHFYDUR
TRANXIS SOFT
mrodriguezz16
TERCIARIS STGO
jeancaa92marte
ar23nold5
ANDROIDSIS
hilaire2
moyares99
lamega65yo
fpolanco
ANTENISIS
juanitof
corialis
hilaire2
jreyes
mmoronta
PARXIS
1
0

Ejemplo de salida
ANTENISIS 4
ANDROIDSIS 4
TERCIARIS STGO 2
TRANXIS SOFT 1
PARXIS 0
¡
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder