URI Online Judge | 3138

Aniversário do Tobias

Por Roger Eliodoro Condras, UFSC-ARA BR Brazil

Timelimit: 1

Hoje é aniversário do Tobias (parabéns!) e como atualmente estamos passando por um momento de isolamento social, ele decidiu fazer uma festa online para poder comemorar a data com os seus amigos.

Como todo bom maratonista de programação, Tobias gosta muito de balões. E é claro que não seria no seu aniversário que eles iriam ficar de fora. Ele decidiu pendurar alguns na sua parede afim de deixar seu quarto decorado para a festa virtual de mais tarde.

O Tobias tinha balões de várias cores guardado em casa e começou a pendurá-los um do lado do outro. Enquanto pendurava ele ficou se perguntando se aquela ordem estava boa, ou se devia colocá-los em alguma ordem distinta e de quantas formas ele poderia trocar aqueles balões de lugar para obter uma sequência diferente.

Dada a lista de quantos balões de cada cor o Tobias encontrou em casa, você consegue ajudá-lo a saber qual o número de sequências distintas ele pode obter reordenando a posição dos seus balões?

Note que trocar dois balões da mesma cor de lugar não gera uma nova sequência e é garantido que o Tobias vai usar todos os balões que ele achou e que esse número não ultrapassa 20.

Entrada

Um inteiro N (0 \(\leq\) N \(\leq\) 20). Em seguida haverá N linhas, cada uma com uma string S (1 \(\leq\) |S| \(\leq\) 15) e um inteiro B (1 \(\leq\) B \(\leq\) 20) separados por um espaço. O nome de uma cor e o número de balões respectivamente.

A string S é formada apenas por letras minúsculas do alfabeto inglês sem espaços e é garantido que a soma do número total de balões não ultrapassa 20.

Saída

Um inteiro, o número total de sequencias distintas que Tobias consegue obter trocando os balões de ordem.

Como hoje é aniversário dele, imprima “Feliz aniversario Tobias!” (sem aspas) uma linha antes de imprimir a resposta. :)

Exemplo de Entrada Exemplo de Saída

3
vermelho 2
azul 2
verde 1

Feliz aniversario Tobias!
30