IT Challange - Facebook CTF (Wave 1)

Iniciado por NERV0, Septiembre 17, 2018, 01:20:50 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Septiembre 17, 2018, 01:20:50 AM Ultima modificación: Septiembre 17, 2018, 01:22:26 AM por NERV0
Gente, para los que no sabían, Facebook junto con Mercadolibre, están haciendo un IT Challange. Y como me gusta guardarme todo lo que encuentro, hoy les traigo la primer parte del evento. Les dejo todos los retos para que se entretengan!




WAVE 1:





capture_Canada - Imágen Indescifrable

El 29 de Agosto encontramos una imagen muy extraña y sospechamos que es algún tipo de código que todavía no pudimos romper.  Te crees capaz de enfrentarlo?

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




capture_United States - Username Disparity

Dados dos nombres de usuario, el grado de similitud se define como la longitud del prefijo más largo común a ambas cadenas. En este desafío, recibirás una cadena. Debes quebrar la cadena para crear sufijos cada vez más cortos y luego determinar la similitud del sufijo con la cadena original. Haz esto para cada longitud de sufijo desde la longitud de la cadena hasta 0 y acumula los resultados. Por ejemplo, considera la cadena 'ababa'.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




capture_Guyana - Ximena, Oscar y Raúl

Ximena, Oscar y Raúl son tres amigos a los que les gusta la criptografía.
Recientemente aprendieron un sencillo método de cifrado y decidieron utilizarlo para compartir archivos de manera segura. Desafortunadamente olvidaron la clave de encriptación que usaron: sólo recuerdan que era un número entero entre 0 y 255.
Podés ayudarlos a recuperar el mensaje original?


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




capture_Brazil - DECORANDO

Mercado Libre se está expandiendo, por ello estamos construyendo una nueva oficina. La misma está en proceso de construcción. Sin embargo el equipo encargado de la decoración está en un dilema y solicitó ayuda a IT.

Tienen que decorar el muro principal de la oficina para que sea el punto focal de la oficina. El muro tiene 32 x 3 metros (ancho x alto, sin ninguna aberturas) y se quiere utilizar planchas de vinilo de 1 metro por 3 metros (ancho x alto, pueden ser dispuesta tanto horizontalmente como verticalmente) de distintos colores y patrones de diseño pero no están muy seguros de cómo disponerlos para que quede lindo. Por ello pidieron al equipo de IT si les podían calcular todas las posibles disposiciones (sin superponer planchas) para poder tomar una decisión sin dejar ninguna opción sin evaluar.

Has sido asignado la resolución de esta incógnita: ¿qué cantidad de formas distintas de disponer las planchas van a tener que evaluar para tomar una decisión?





capture_Argentina - ALPACA

¡Científicos del centro para el Tratamiento y Control de la Población, hicieron un impresionante descubrimiento! Las alpacas, en lugar de portar un código genético compuesto de bases adenina (A), citosina (C), guanina (G) y timina (T), poseen bases completamente distintas: su ADN está compuesto de bases (A),(C),(L) y (P) donde (L) es lanina y (P) es preciosina. Más aún, los investigadores descubrieron que el código genético de las alpacas es extremadamente estructurado. Este se puede codificar como una secuencia sobre el alfabeto {A,C,L,P} aplicando algunas reglas.

Partiendo con la letra A la secuencia que describe el ADN puede generarse aplicando N veces el siguiente conjunto de reglas de forma simultánea:

Reemplazar cada ocurrencia de (A) por (AL)
Reemplazar cada ocurrencia de (L) por (PACA)
Reemplazar cada ocurrencia de (P) por (CP)
Reemplazar cada ocurrencia de (C) por (PC)
Por ejemplo, si N = 3 la secuencia obtenida será ALPACACPALPCAL:

A −→ AL −→ ALPACA −→ ALPACACPALPCAL
Los científicos están estudiando la hermosura de las alpacas. Hasta el momento han descubierto que existen M tipos de hermosura distintas. Y más aún, también han logrado relacionar el tipo de hermosura de una alpaca con la cantidad de veces que la subcadena (ALPACA) aparece en su secuencia de ADN. En particular, si (ALPACA) aparece D veces en la secuencia de ADN de una alpaca, entonces su tipo de hermosura está dado por el resto de la división de D por M. ¿Podrías ayudar a nuestros científicos a determinar qué tan bella es una alpaca en particular?
La entrada consiste en una única línea que contiene dos números N y M separados por un espacio, donde N indica el número de iteraciones que describen el ADN de la alpaca (1 ≤ N ≤ 10^15), y M es la cantidad de tipos de hermosura (2 ≤ M ≤ 10^9).

Entrada:
234612846789231 123456789


La respuesta es un único entero conteniendo el tipo de hermosura de la alpaca (D mod M).





capture_Spain - PAGES

Arturo es un escritor aficionado de novelas de misterios. Hace pocos días ha terminado su último libro y, hasta ahora, su mejor obra, titulada "El Misterio de la Mano". No solo eso, Arturo acaba de firmar un contrato con una editorial para que lo ayude a comercializar su libro y lograr que el mundo conozca su trabajo.
Una de las decisiones más importantes que Arturo debe tomar es el tamaño en el que su libro será impreso. Para ello, le ayudaría mucho saber la cantidad de páginas que su libro tendría en cada formato.
Dependiendo del formato del libro, cada página puede contener hasta Z caracteres. Sin embargo, la editorial exige que cada página incluya el título del libro de largo Y , además del número de página actual y la cantidad de páginas del libro separados por el carácter '/'. Para escribir el número de página actual se usa la misma cantidad de espacios que el número de paginas, anteponiendo los '0' que sean necesarios. Por ejemplo, la página "uno de diez" se escribe 01/10, ocupando cinco caracteres.
Arturo sabe que su libro tiene X caracteres. Ayuda a Arturo a determinar la mínima cantidad de páginas que tendría su libro, dependiendo del formato que escoja.
La primera línea de la entrada contiene tres enteros X, Y y Z, donde X (1 ≤ X ≤ 10^5) es el número de caracteres en el libro, Y (0 ≤ Y ≤ 10^2) es el largo del título, y Z (0 ≤ Z ≤ 10^5) es el número de caracteres que se puede escribir en una página. La entrada está construida de manera que siempre es posible generar un libro.
Como salida se espera un valor entero que representa el mínimo número de páginas que puede tener el libro.
Entrada de Ejemplo: 456 639 718
Salida de ejemplo: 6
Entrada
171024 12825 14359





capture_France - Balanced Strings

Julia tiene cadena de caracteres, s, compuesta por las letras a, b, c y d. Se dice que la cadena de caracteres está equilibrada si se cumplen las dos condiciones siguientes:

El número sumado de a's y c's es par.
El número sumado de b's y d's es par.

Por ejemplo, las cadenas de caracteres 'abcd' y 'aacc' están equilibradas, pero 'abc' y 'bcd' no lo están.

Tu tarea consiste en ayudar a Julia a determinar si dos cadenas de caracteres están equilibradas o no.

Formato de entrada

La entrada consiste en una sola línea con la cadena de caracteres a analizar.

Restricciones
Cada carácter s ∈ {abcd}.

Se le proporciona un archivo con la entrada No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Sample Case 0
Sample Input 0
acdbddbbbbaaac

Sample Output 0
true





capture_Germany - Cuadrado no tan mágico

Llamamos cuadrado "no tan mágico" a una grilla de 5x5 en la que en cada casillero hay un dígito entre 0 y 3, y tal que la suma de cada una de sus filas, cada una de sus columnas y cada una de sus diagonales sea la misma.

Por ejemplo, el siguiente cuadrado es "no tan mágico", pues cada una de sus filas, columnas y diagonales suma 3:

0 0 0 0 3
1 2 0 0 0
0 1 0 2 0
2 0 0 1 0
0 0 3 0 0

¿Cuántos cuadrados "no tan mágicos" existen?





capture_Italy - The Perfect Team

La Escuela de Idiomas y Ciencias enseña cinco materias: Física, Química, Matemáticas, Botánica y Zoología. Cada estudiante es experto en una materia. Las habilidades de los alumnos se describen mediante una string de las habilidades citadas que consta de las letras p, c, m, b y z solamente. Cada carácter describe la habilidad de un estudiante de la siguiente manera:
p → Física.
c →  Química.
m → Matemáticas.
b → Botánica.
z  → Zoología.

Tu tarea es determinar el número total de diferentes equipos que satisfacen las siguientes restricciones:

Un equipo consiste en un grupo de exactamente cinco estudiantes.
Cada estudiante es experto en una materia diferente.
Un estudiante puede estar solo en un equipo.

Por ejemplo, si la cadena de habilidades es pcmbzpcmbz, entonces hay dos equipos posibles que se pueden formar a la vez: habilidades [0-4] y habilidades [5-9]. No es importante determinar las permutaciones, ya que siempre estaremos limitados a dos equipos con 10 estudiantes.

Se le proporciona un archivo con la entrada No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Restricciones
5 ≤ n ≤ 5 × 105
skills ∈ {p,c,m,b,z}

Sample Input 0 pcmbz
Sample Output 0 1





capture_Romania - BROKEN RSA

El sistema de encriptación RSA, como parte de la fase de generación de claves públicas y privadas, debe generar dos números primos grandes p y q y un número n = p*q que se usará luego para encriptar y desencriptar mensajes (ver No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Una reconocida empresa de Palermagro decidió realizar su propia implementación de este sistema. Decidieron generar los primos p y q con dos algoritmos diferentes pensando que así obtendrían mayor seguridad.

La ingeniera Melanie S. implementó la siguiente función:

def generate_p():
    '''
    algoritmo eficiente, seguro y testeado para generar primos grandes
    '''
    ...
    ...
    return p


El ingeniero N. Álvarez, sin muchas ganas de programar, decidió tomar un atajo y programar lo siguiente:

def generate_q():
    '''
    genera un primo
    '''
    return 1094782941871623486260250734009229761

Has tenido acceso a uno de los mensajes encriptados así como también a un PEM que contiene la clave pública de encriptación. ¿Sos capaz de descubrir el contenido del mensaje original?


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




capture_Russia - WIFI

Los vecinos de Calle Larga están preocupados porque la calidad de su conexión Wi-Fi ha empeorado considerablemente en los últimos años y debido a esto no pueden ver Game of Thrones tranquilamente.
Cada una de las casas en la calle posee un enrutador cuyas características determinan el alcance de su señal. La señal de cada enrutador corresponde a un círculo determinado por un radio r. Cuando dos señales se intersectan se produce interferencia lo que degrada considerablemente la conexión.
En la última reunión de la junta de vecinos, la comunidad determinó que la única solución para su problema era compartir la conexión a internet entre algunos vecinos para así poder prescindir de algunos enrutadores. Lamentablemente, la comisión encargada de poner el plan en marcha está teniendo problemas para evaluar qué enrutadores son mejores candidatos para ser mantenidos. Específicamente, dado un enrutador les gustaría determinar la cantidad de señales que este contiene completamente. Si la señal de un enrutador contiene completamente la señal de muchos enrutadores entonces este es un buen candidato para ser mantenido.
La entrada contiene una sola línea con enteros separados por un espacio en blanco. Los dos primeros enteros N y Q (0 ≤ N ≤ 2 × 10^5, 0 ≤ Q ≤ 5 × 10^4) corresponden respectivamente a la cantidad total de enrutadores y la cantidad de enrutadores por los cuales se hará una consulta. Cada uno de los siguientes N pares de números describe un enrutador. El par i-ésimo describe el enrutador i con dos enteros p y r (0 ≤ p ≤ 10^9, 0 < r ≤ 10^9) que representan respectivamente la posición del enrutador en la calle y el radio de alcance de su señal. No habrá dos enrutadores en la misma posición. Los siguientes Q enteros contienen la descripción de una consulta. Cada consulta está descrita con un entero i (1 ≤ q ≤ N) indicando que se desea determinar la cantidad de señales que están completamente contenidas en la señal del enrutador i.
Por cada consulta debe imprimirse un entero. Cada entero debe corresponder a la cantidad de señales que están contenidas completamente en la señal del enrutador de la consulta.

Se deberá ingresar la concatenación de todos los casos de prueba en orden, sin espacios.

Entrada
10 10 9106 137 5339 852 3726 3952 994 210 5304 1471 5990 3581 3266 4392 5290 439 9299 296 9437 479 7 6 8 1 6 7 7 3 7 6





capture_Kazakhstan - Giant Roulette

Las ruletas con mensaje son un complicado esfuerzo de criptógrafos amateur para transmitir mensajes de manera trabajosa y cuya efectividad es absolutamente dudosa.
Son ruletas divididas en una cantidad par de sectores y en las que cada sector contiene algún carácter ASCII. En la parte superior hay un marcador llamado ORDEN y en la parte INFERIOR hay un marcador llamado MENSAJE.
El protocolo determina que se lee comenzando en el sector marcado por ORDEN y en sentido horario todas las letras de la ruleta. Por ejemplo, en la siguiente posición inicial se puede leer la palabra BANANA
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Luego la ruleta comienza a girar y se irán mostrando sucesivamente las siguientes palabras:
BANANA
ANANAB
NANABA
ANABAN
NABANA
ABANAN

En el momento en el que la palabra leída desde la posición ORDEN es la mínima lexicográfica (la que aparecería primero en un diccionario), se podrá leer a partir de la posición MENSAJE un mensaje oculto de una longitud acordada previamente.

En el ejemplo anterior, el momento en que se muestra el mensaje es cuando desde ORDEN se lee la palabra ABANAN, como se muestra en la siguiente imagen.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Si la longitud acordada era 2, el mensaje oculto sería NA

Hemos descubierto una ruleta increíblemente grande. Contiene exactamente un millón de letras. Sabemos también que el mensaje cifrado que encontraremos allí tiene una longitud de 2976. El contenido de la ruleta en su estado inicial está dado en el archivo roulette.txt
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

¿Podés ayudarnos a descubrirlo?

Aclaración: Para realizar la comparación "alfabética" de símbolos en el archivo deben utilizarse sus valores ASCII.





capture_China - Birdplane

El fin de semana pasado Melanie fue al campo y sacó muchas fotos naturales en blanco y negro de 64x64 píxeles. Cortó pedacitos de 1x4 píxeles y los permutó en cada foto usando la misma permutación. El problema es que se olvidó cuál era la permutación que había utilizado, ¡y ahora no puede saber qué había en cada imagen! ¿Podrás ayudarla a reordenar los bloques de píxeles y decirle en cuáles de las primeras 50 imágenes había un pájaro o un avión?

La respuesta es la concatenación de los números de las imágenes correctas, de menor a mayor, separados por espacios.


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




capture_Japan - Moraleja: No implementar tu propia hash table

Una hash table es una estructura de datos que permite guardar elementos y acceder a ellos muy rápidamente utilizando una función de hashing, es decir, una función que para cada elemento posible devuelve un número dentro de un rango indicado.

Una de las formas más famosas de implementar una hash table se llama "hashing cerrado". Esta implementación guarda los datos en un arreglo de longitud K prefijado de antemano y al recibir un nuevo elemento E, lo hashea y lo coloca en la posición hash(E) (la función "hash" siempre devuelve un entero en el intervalo [0,K)). Si esa posición ya se encuentra ocupada, intenta guardarlo en la posición hash(E)+1. Si esa también está ocupada, intenta en la hash(E)+2 y así siguiendo, hasta llegar a la última posición del arreglo. Si aún así no encuentra espacio, vuelve a la posición 0 del arreglo y sigue el mismo proceso hasta encontrar una posición libre.

Juan programó su hash table utilizando hashing cerrado, y utilizó una función de hashing uniforme (o sea, que para cada elemento asigna un valor entero en el rango [0,K) con la misma probabilidad). Desafortunadamente, su implementación tiene un bug: si llega al final del arreglo y no encontró espacio para guardar el elemento, lo descarta directamente (es decir, no intenta colocarlo en las posiciones 0, 1, 2... como sería correcto).

Para testear la implementación de Juan, se seleccionaron N elementos al azar para insertarlos en una hash table implementada con un arreglo de longitud K. ¿Cuál es la probabilidad de que con este test descubramos que la implementación de Juan tiene un bug, si N = 27 y K = 42?

Deberá ingresarse la respuesta como fracción irreducible (ver ejemplo).

Ejemplo:

Si N = 2 y K = 2, los hashing posibles para los N = 2 elementos a insertar son:

0 0
0 1
1 0
1 1

El único caso en el que el bug se expondrá es si ambos hashes son 1. En este caso, primero se guarda el primer elemento en array[1]. Luego, el siguiente elemento no tiene espacio en array[1] y como es la última posición del arreglo, lo descartará. Por lo tanto, la respuesta para este caso será "1/4" (sin comillas)





capture_Malaysia - HRML Parser

Hemos definido nuestro propio lenguaje de marcado, HRML.
En HRML, cada elemento consta de una etiqueta de inicio y atributos asociados a ella. Para cerrar un elemento, hay 2 opciones: una etiqueta de cierre separada, o; la etiqueta de cierre con una sintaxis especial. Solo las etiquetas de inicio pueden tener atributos. Las etiquetas también pueden estar anidadas.
Las etiquetas de apertura siguen el formato:
<tag-name attribute1-name="value1" attribute2-name="value2" ... >


Las etiquetas de cierre siguen el formato:
En la línea
<tag-name attribute1-name="value1" ... />


Etiqueta separada:
</tag-name>
Podemos llamar a un atributo haciendo referencia a la etiqueta, seguida del símbolo '~' y el nombre del atributo. Para atravesar etiquetas anidadas usamos el carácter '." entre las etiquetas.
Por ejemplo:
<tag1 value="HelloWorld">
  <tag2 desc="Description1" />
  <tag3 name="Name2">
    <tag4 quantity="12" />
  </tag3>
</tag1>


Los atributos se referencian como:
tag1~value
tag1.tag2~desc
tag1.tag3~name
tag1.tag3.tag4~quantity


Recibes un conjunto ordenado de archivos. Se te proporciona un código fuente válido en formato HRML que consta de N líneas. Tienes que responder Q consultas asociadas a cada código fuente. Cada consulta te pide que imprimas el valor del atributo especificado en una nueva línea separada. Imprimir "¡No encontrado!" si no existe dicho atributo.
La respuesta que le permitirá continuar con la competencia será el hash SHA-256 (en mayúsculas) de un archivo que contiene todos los valores obtenidos como resultado de las consultas (respecto del pedido), un valor por línea, sin líneas en blanco (excepto una última nueva línea vacía que debe estar presente). Use solo LF (0x0A) como nueva línea.
Formato de entrada de cada archivo
La primera línea consta de dos enteros separados por espacio, N y Q. Las siguientes N líneas del código fuente de HRML válido y cada línea constan de una etiqueta de apertura con cero o más atributos, o una etiqueta de cierre. Luego, las siguientes líneas Q contienen las consultas. Cada consulta consiste en una string que hace referencia a un atributo en el código fuente HRML.
Restricciones
N> = 1
N> = 1
Todos los nombres de etiquetas son únicos.
Sample Input for one file
4 3
<tag1 value = "HelloWorld">
  <tag2 name = "Name1">
  </tag2>
</tag1>
tag1.tag2~name
tag1~name
tag1~value


Sample Output for one file
Name1
Not Found!
HelloWorld


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




capture_Australia - PyParser

Hemos definido nuestro propio lenguaje de marcado, HRML. En HRML, cada elemento consta de una etiqueta de inicio y cierre, y hay atributos asociados con cada etiqueta. Solo las etiquetas de inicio pueden tener atributos. Podemos llamar a un atributo haciendo referencia a la etiqueta, seguida del símbolo '~' y el nombre del atributo. Las etiquetas también pueden estar anidadas.
Las etiquetas de apertura siguen el formato:
<tag-name attribute1-name = "value1" attribute2-name = "value2" ... >
Las etiquetas    de cierre siguen el formato:
< /tag-name >

Por ejemplo:
<tag1 value = "HelloWorld">
<tag2 name = "Name1">
</tag2>
</tag1>

Los atributos se referencian como:
tag1~value 
tag1.tag2~name

Se te proporciona un archivo con un código fuente válido en formato HRML que consta de N líneas. Tienes que responder Q consultas. Cada consulta te pide que imprimas el valor del atributo especificado. Imprimir "¡No encontrado!" si no existe dicho atributo (el resultado de las Q consultas debe ser escrito a un archivo txt en una única línea).

ARCHIVO: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Formato de entrada
La primera línea consta de dos enteros separados por espacio, N y Q. Las siguientes N líneas del código fuente de HRML válido y cada línea constan de una etiqueta de apertura con cero o más atributos, o una etiqueta de cierre. Luego, las siguientes líneas Q contienen las consultas. Cada consulta consiste en una string que hace referencia a un atributo en el código fuente HRML.

Restricciones
1 <= N <= 20
1 <= Q <= 20
Cada línea en el código fuente HRML contiene un máximo de 200 caracteres.
Cada referencia a los atributos en las consultas Q contiene un máximo de 200 caracteres.
Todos los nombres de etiquetas son únicos.

Formato de salida
Imprimir el valor del atributo para cada consulta. Imprimir "¡No encontrado!" sin comillas si no existe dicho atributo en el código fuente HRML.

Entrada de ejemplo:
4 3
<tag1 value = "HelloWorld">
<tag2 name = "Name1">
</tag2>
</tag1>
tag1.tag2~name
tag1 ~ nombre
tag1~value

Salida de ejemplo
Name1 ¡No encontrado! HelloWorld





capture_India - Substring Calculator

Dada una cadena de caracteres, s, podemos definir una sub cadena de caracteres como una cadena de caracteres no vacía que puede ser obtenida aplicando una de las siguientes operaciones

Quitar cero o más caracteres del lado izquierdo de s.
Quitar cero o más caracteres del lado derecho de s.
Quitar cero o más caracteres del lado izquierdo de s. y quitar cero o más caracteres del lado derecho de s.

Por ejemplo, si s=abcde, las subcadenas son:
1   abcde
2   abcd
3   bcde
4   abc
5   bcd
6   cde
7   ab
8   bc
9   cd
10   de
11   a
12   b
13   c
14   d
15   e


Tu tarea es determinar cuántas subcadenas se pueden obtener a partir de aplicar las operaciones descritas anteriormente sobre una cadena s.

La entrada contiene una sola línea que representa la cadena de caracteres a analizar.

Link: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

La salida consiste de un número entero con el total de sub cadenas que se pueden obtener.

Restricciones
s contiene caracteres en el rango ascii[a-z].
0 ≤ |s| ≤ 10^5





capture_Iran - Gotta Catch 'Em All!

En una cueva oscura de la ciudad de Pueblo Paleta fue hallada una escritura muy antigua. Ningún profesor logró descifrar lo que significa, pero se rumorea que contiene la clave para atrapar a todos los pokemones legendarios. ¿Podés ayudarlos a descubrir lo que significa el mensaje?

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




capture_Egypt - ENIGMA

lospa ramet rospa rares olver son:
R1 = VIII / Pos = 1 / Ring = 1
R2 = I / Pos = 17 / Ring = 2
R3 = III / Pos = 12 / Ring = 3
uqhsw gmxfq ogous cmgst juner zdmcu tlgpk agzqp sixbn
lkjok wkvzh tnlpc zwqmw pmrsv lcxnz zuibw hkeqd nouzd
hlori anhvy mysqu obqip ixqwe yubik aqtxn lgwmj lwcju
wzabx mpyqw nbuom szjnl scplz qcmdd mntbe cgrzm ihczj
vtkwy axsig alomk ghfkm xrcgh cpbyt wkybh atrqi dfsv





capture_Niger - Mensaje Chino

Encontramos este mensaje en Chino, pero sospechamos un poco de su veracidad, nos ayudarías a entender qué dice?
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




capture_Kenya - MEDAL

Una caja que contiene N medallas fue encontrada en una excavación. Cada medalla está compuesta por diversas piedras y cada piedra está representada por una letra minúscula de la 'a' a 'z. Una piedra puede estar presente varias veces en una medalla y una piedra pasa a ser llamada especial si está presente al menos una vez en cada medalla
Dada una lista de N de medallas con sus piedras, muestra el cuadrado de la cantidad de piedras especiales que se repiten más de dos veces en una medalla.
Entrada
La primera línea consiste de N,el número de medallas. Cada una de las proximas N líneas contienen una secuencia de letras minúsculas con las piedras de cada medalla
5 abcdefgggghijlmmmnopppqqqqrrr abcdefggghijlmmnopppqqqqrrr abcdefggggghijlmmmnopppqqqqrrr abcdefggggghijlmmmnopppqqqqrrr abcdefggggghijlmmmnopppqqqqrrr





capture_Angola - Lego Blocks

Tienes 4 tipos de bloques Lego™, de tamaños (1 x 1 x 1), (1 x 1 x 2), (1 x 1 x 3) y (1 x 1 x 4). Suponé que tienes un número infinito de bloques de cada tipo. Para abreviar, podemos llamar a estos tipos, respectivamente, bloque 1, bloque 2, bloque 3 y bloque 4, o incluso (1), (2), (3) y (4).

Usando estos bloques, deseas hacer una pared de altura N y ancho M. La pared debe ser una estructura sólida continua sin agujeros. La pared debe estar conectada estructuralmente, por lo que no debe existir una vertical recta que permita que la pared se separe en dos sin cortar uno o más ladrillos.

Input (entrada):

La primera línea contiene el número de casos de prueba T. Siguen los casos de prueba T. Cada caso contiene dos enteros, N y M.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Output (salida):

Una sola línea que contiene la cantidad de formas de construir el muro.
Como los números pueden ser muy grandes, puedes aplicar modulo 1.000.000.007 a la salida.

Restricciones:
1 ≤ T ≤ 100
1 ≤ N,M ≤ 1000

Sample Input:
4
2 2
3 2
2 3
4 4

Sample Output:
3793375






capture_South Africa - GHOST AUDIO

El siguiente audio tiene la respuesta que buscás.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




capture_Algeria - Unbiased Coin

Ana y Beto van a jugar a un juego de azar. Los dos comparten una moneda balanceada y van a jugar por turnos: primero Ana e inmediatamente después Beto. En el turno de Ana, ella tira una moneda: si cae cara, gana un punto; si cae ceca, no gana nada. Beto es más innovador y en su turno primero elige cuántas veces va a tirar la moneda: si elige tirar K veces y salen todas cara, gana 2^{K-1} puntos; caso contrario, no gana ningún punto. El ganador será el que primero logre llegar a 1000 puntos.

Como Beto es un gran matemático, él elige la cantidad K de tiros de la moneda que maximiza su probabilidad de ganar. ¿Cuál es la probabilidad de que gane Beto?

La respuesta deberá ser redondeada a 8 lugares después de la coma. Por ejemplo, si el resultado fuera 0,123456789, deberá ingresarse 0,12345679. Si fuera 0,123, deberá ingresarse 0,12300000.


"Ciertos programas informáticos son el reflejo del ego académico del pelotudo que los desarrolla"