Uploaded by TAIRY HERNANDEZ CISNEROS

Calentamiento-CODING CUP 2022

advertisement
A. Calificación Final
Descripción
Estamos a final del semestre y muchos alumnos de la carrera de Ingeniería en
Sistemas del ITSUR están preocupados por su calificación final. Resulta que ahora
con esto de las competencias y la reforma educativa, los maestros tienen que
evaluar varios aspectos, no solo un examen, por ejemplo la asistencia, el trabajo en
equipo, las prácticas y otras cosas. El profe de bases de datos quiere enviar un
reporte a sus alumnos y te ha pedido que le ayudes a generarlo con un programita.
Escribe un programa que lea varias calificaciones de un alumno y la ponderación
de cada una de ellas. El programa debe imprimir una simple gráfica de barras
horizontal de cada calificación, la calificación final redondeada a un valor entero y
una carita feliz en caso de tener una calificación aprobatoria o una carita triste en
caso de tener una calificación reprobatoria. Las calificaciones se ingresarán con un
número entero que puede ser desde 0 hasta 10.
El porcentaje de ponderación de cada aspecto a evaluar también es un entero y
puede ir desde 1 hasta 100. Ten en cuenta que la suma de todas las ponderaciones
siempre será 100.
Entrada
En la primer línea se leerá un número N (1 <= N <= 10) que indica el número de
aspectos a evaluar. En las siguientes N líneas se leerán dos enteros, c y p, la
calificación y el porcentaje de ponderación para esa calificación.
Salida
Por cada calificación se debe imprimir una cantidad de asteriscos igual a la
calificación obtenida en cada aspecto, por ejemplo, si la calificación es un 8, se
deben imprimir 8 asteriscos.
La siguiente línea contendrá la calificación final del alumno redondeado a un entero
y en la última línea se deberá imprimir una carita feliz :) si la calificación es mayor o
igual a seis y una carita triste :( si la calificación es menor a seis. Si la calificación
final es reprobatoria no se debe redondear, en lugar de redondear se debe imprimir
un cero. Note que la carita se compone de dos puntos y un paréntesis.
B. Distancia mínima recorrida
Descripción
Mario por fin ha decidido apartarse del ordenador y salir a recorrer el mundo. El
mundo de Mario es un plano cartesiano donde no hay límites ni obstáculos. Mario
tiene pensado visitar sus dos lugares favoritos; la biblioteca y el museo de artes.
Sabemos que Mario es flojo entonces él quiere recorrer la mínima distancia posible
para visitar estos lugares y regresar a su casa para seguir programando.
Entrada
3 pares de números enteros x1, y1, x2, y2, x3 y y3, representando la ubicación de
la casa de Mario y las coordenadas de los dos lugares que desea visitar.
Salida
Un número de punto flotante que representa la distancia mínima que Mario debe
recorrer para visitar todos los lugares y volver a su casa. Imprimir el resultado
redondeado a 4 decimales.
C. Área de un Romboedro
Descripción
En este problema deberás calcular el área de un romboedro.
A=6×D×d2
Entrada
2 números enteros D y d que representan la diagonal mayor y la diagonal menor de
una de las caras del romboedro.
Salida
La cadena "Area = A" sin comillas y donde A es el área total del paralelepípedo.
EJEMPLO
D. Pseudorandom
Descripción
The most common procedure used in computers to generate pseudorandomn
numbers is the Linear congruential generator.
The Linear congruential generator uses four integer numbers: the multiplier a, the
increment c, the module m and the seed x0, with 2≤a<m, 0≤c<m and 0≤x0<m. Is
generated a sequence of pseudorandom numbers xn, with 0≤xn<m for all n, when
using successively the congruence:
xn+1=(a⋅xn+c) mod m
For example, the sequence of numbers that are generated when choose the
multiplier a=7, the increment c=4, the module m=9, and the seed x0=3, is
: 3, 7, 8, 6, 1, 2, 0, 4, 5, 3, 7, 8, 6, …
In this sequence, we notice that x0 = x9 = 3, x1 = x10 = 7, x2 = x11 = 8, and so on. That
means that starting from some point the values start being generated again in a loop.
This happens because in the linear congruential generator each term in the
sequence depends only on the previous term.
The lineal congruence generator doesn't always produce m different terms, for
example, when the multiplier a=3, the increment c=4, the module m=9 and the
seed x0=5, the following sequence is generated: 5, 1, 7, 7, …, we can see that there
are three different elements in the sequence, but the first two (5 and 1) are only
generated once and the third term is generated in a loop.
The task is: given the values of a, c, m and x0, indicate if the linear congruential
generator produces m distinct values before values start repeating. You should also
print the total amount of elements that are generated before any repeated number
appears, the total amount of elements that are generated only once, and the total
amount of elements that are generated repeatedly in the loop.
Entrada
There are several test cases of input. Each test case consist of a single line that
has four integer numbers: a, c, m, x0 separated by spaces
(2≤a<m, 0≤c<m, 3≤m≤103, 0≤x0<m).
Salida
For each test case you should print a single line containing the word YES or NO
(indicating if m distinct elements are generated before the numbers start repeating),
followed by the three integer numbers t s r, which indicate, respectively, the total
amount of elements that are generated before any repeated number appears, the
total amount of elements that are generated only once, and the total amount of
elements that are generated repeatedly in the loop.
Ejemplos
Entrada
7 4 9 3
3 4 9 5
2 3 9 4
Salida
YES 9 0 9
NO 3 2 1
NO 6 0 6
Use fast I/O methods
Download