Aproximando-se do ano novo, uns grupos de amigos resolvem fazer o tradicional festival de presentes. Considerando um grupo de amigos que vão dar presentes entre si, queremos determinar quanto cada amigo ganhou (ou perdeu) considerando o valor que ele deu de presente pra seus amigos (dividindo igualmente) e o quanto ele recebeu de seus amigos. Porém, nesses grupos de amigos, algumas pessoas vão ter mais conhecidos que outras. Dado um grupo de amigos, o dinheiro que cada pessoa do grupo vai usar pra presentear e dividir igualmente entre os amigos que ela escolheu presentear, crie o programa que responde quanto cada pessoa do grupo ganhou (ou perdeu).
Este problema envolve determinar, para um grupo de amigos que se dão presentes, quanto cada pessoa dá a mais do que recebe (e vice-versa para aqueles que vêem dar presentes com cinismo). Neste problema, cada pessoa reserva algum dinheiro para dar presentes e divide esse dinheiro igualmente entre todos aqueles a quem são dados presentes. No entanto, em qualquer grupo de amigos, algumas pessoas dão mais do que outras (ou pelo menos podem ter mais conhecidos) e algumas pessoas têm mais dinheiro do que outras. Dado um grupo de amigos, o dinheiro que cada pessoa do grupo gasta em presentes e uma (sub) lista de amigos a quem cada pessoa dá presentes; você deve escrever um programa que determina quanto mais (ou menos) cada pessoa no grupo dá do que recebe.
A primeira linha de entrada será a quantidade de grupos a serem examinados. Logo, teremos uma sequência de grupos de amigos do festival de presentes. Cada grupo consiste de várias linhas:
Para cada grupo do festival de presentes, imprima, para cada pessoa do grupo, o nome da pessoa seguido pelo ganho (ou perda) recebido (ou gasto) por ela. Cada linha de pessoa deve ser impressa na mesma ordem em que aparecem pela primeira vez na entrada.
A saída de cada grupo deve ser separada de outros grupos por uma linha em branco. Todos os presentes são inteiros. Então, cada pessoa pegará o valor que ela reservou para os presentes e dividirá igualmente entre as pessoas destinadas, dando o máximo possível que não passe do valor definido. Qualquer dinheiro que sobre nessa divisão será mantido e irá fazer parte do "valor líquido" final impresso na saída dessa pessoa.
2 5 andre clara gabriel vitoria matheus andre 200 3 clara gabriel vitoria gabriel 500 1 andre matheus 150 2 vitoria gabriel clara 0 2 matheus vitoria vitoria 0 0 3 liz joao andre liz 30 1 joao joao 55 2 liz andre andre 0 2 joao liz
andre 302 clara 66 gabriel -359 vitoria 141 matheus -150 liz -3 joao -24 andre 27
O RobôCIn, grupo de pesquisa do Centro de Informática da UFPE que usa a robótica para resolver problemas, está desenvolvendo um novo projeto. Nesse projeto, eles criaram um robô que se locomove por um dado um tabuleiro retangular utilizando uma sequência de instruções. Porém, eles precisam de ajuda para descobrir onde o robô estará, considerando as dimensões do tabuleiro, a posição inicial do robô e o conjunto de instruções. A posição do robô consiste em um par de coordenadas x e y, que são inteiros, e uma orientação (N, S, L, O para norte, sul, leste e oeste) que indica pra qual lado o robô está virado no momento. Uma instrução para o robô é uma sequência de letras que pode ser "E", "D" e "F" que significam, respectivamente, as instruções:
A primeira linha da entrada consiste nas coordenadas do canto superior direito. Assume-se que a posição (0,0) dele é o canto inferior esquerdo. A próxima linha contem a quantidade de robôs que o time do RobôCIn ira treinar, em ordem. Então, para cada robô, serão duas linhas. Na primeira a posição e orientação inicial. E, na segunda, a sequência de comandos que o robô deve ler.
Para cada robô (conjunto de posição e instruções) da entrada, você deve imprimir a posição final dele no tabuleiro seguido de sua orientação final, todos separados por um espaço em branco e uma quebra de linha no final. Se um robô cair da borda do tabuleiro, deve imprimir a palavra "PERDIDO" após a posição e orientação, na mesma linha.
5 3 3 1 1 L DFDFDFDF 3 2 N FDDFEEFFDDFEE 0 3 O EEFFFEFEFE
1 1 L 3 3 N PERDIDO 2 3 S
* Uma posição consiste de dois inteiros que especificam as coordenadas iniciais do robô seguida de uma orientação (N, S, L, O), todos separados por um espaço em branco na mesma linha. Uma instrução do robô é uma sequência de letras 'L', 'R' e 'F' em uma linha.
* No tabuleiro, apenas um robô pode andar de cada vez, ou seja, primeiro você precisa processar toda a sequência de um robô antes de ir para o próximo. Você pode assumir que todas as posições iniciais do robô estão dentro dos limites do tabuleiro especificado. O valor máximo para qualquer coordenada é 50. Todas as strings de instrução terão menos de 100 e pelo menos 1 caracteres de comprimento.
Em um belo dia no centro de Recife, você se depara com um desafio proposto pela prefeitura para capturar as mentes mais brilhantes do centro. Chegando mais perto, a organização lhe explicou qual era o desafio:
Você tinha alguns segundos para informar uma sequencia de dígitos, definida pela seguinte formula:
Para determinar como você leria a sequencia de dígitos, divida ela no mínimo de grupos possível, tal que cada grupo contenha uma parte contígua de mesmos dígitos. Então, para cada grupo, leia o numero de dígitos seguido do digito. Para converter numa string de dígitos, concatena a leitura de cada palavra.
Por exemplo, a leitura e conversão para a string de dígitos "3322251": Dois 3, três 2, um 5 e um 1 -> 2 3 + 3 2 + 1 5 + 1 1 -> "23321511"
Dado um inteiro positivo n, retorna a sequencia de dígitos de n.
Uma linha contendo um número n (1 <= n <= 30)
Uma linha contendo apenas os dígitos referente ao número n.
1
1
4
1211
A fama internacional de Recife como a capital dos fofoqueiros vem ganhando o cenário nesses últimos dias. A Organização Mundial da Fofoca (OMF), planejando testar as capacidades do povo recifense, criou o desafio de descobrir até onde uma notícia chega partindo de uma única pessoa em um bairro de Recife. Sabendo que cada pessoa que recebe a notícia irá, no próximo dia, fofocar para todos os seus amigos próximos e estes, no dia seguinte, fofocarão para seus outros amigos, assim por diante, o desafio da OMF planeja determinar duas coisas:
A primeira linha da entrada contém o número M de moradores (1 ≤ M ≤ 2500). Os moradores são enumerados de 0 a M-1. Cada uma das M linhas seguintes especifica o conjunto de amigos de um morador (do morador 0 até o morador M-1). Cada um desses conjuntos de amigos contém: o número de amigos (0 ≤ A < 15), seguido por A inteiros distintos que representam os amigos do morador. Todos esses inteiros são separados por um único espaço. A próxima linha contém um inteiro T (1 ≤ T < 60), que é o número de casos de teste. E cada uma das T linhas a seguir contém um inteiro que representa um morador (de 0 a M-1), que seria a fonte da notícia (o iniciador da fofoca) no caso teste.
A saída consiste em T linhas, uma para cada caso de teste. Se nenhum morador (exceto a fonte) ouvir a fofoca, a linha de saída deverá printar o inteiro '0'. Caso contrário, a linha deve conter dois inteiro: F e D, separados por um único espaço, onde F é o máximo de pessoas a ouvirem a fofoca pela primeira vez em um único dia e D é o primeiro dia em que esse máximo ocorreu.
6 2 1 2 2 3 4 3 0 4 5 1 4 0 2 0 2 3 0 4 5
3 2 0 2 1