

Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Jogo de buzios
Tipologia: Notas de estudo
1 / 2
Esta página não é visível na pré-visualização
Não perca as partes importantes!


Problema C Jogo de Búzios
(arquivo de entrada: JOGO.IN, arquivo de saída: JOGO.OUT) Búzios são pequenas conchas marinhas utilizadas em jogos esotéricos de predição do futuro. O jogo que nos interessa não é esotérico: ele era jogado, apenas por diversão, por jangadeiros de uma bonita praia do Rio de Janeiro. O jogo é jogado por N jangadeiros sentados ao redor de um círculo. Os jangadeiros são numerados de 1 a N de maneira que o jangadeiro (i+1) está sentado à direita do jangadeiro i, para 1 ≤ i <N. O jogador 1está sentado à direita do jangadeiro N. No início do jogo cada jangadeiro tem um búzio, exceto o jangadeiro K, que tem dois búzios. Em cada movimento, apenas um jangadeiro participa do jogo (chamado jogador da vez). O jogador da vez no primeiro movimento (t =1) é sempre o jangadeiro 1. O jangadeiro da vez dá um ou dois búzios para o jangadeiro sentado à sua direita. A decisão de dar um ou dois búzios depende do turno: em turnos ímpares (t = 1, 3, 5...) o jangadeiro deve dar um búzio; em turnos pares (t = 2, 4, 6...) o jangadeiro deve dar dois búzios. Se ao terminar seu movimento o jangadeiro ficar sem búzios, ele abandona o jogo.
Nós vamos considerar que o jogo termina quando restar apenas um jangadeiro, que é declarado o vencedor do jogo. Por exemplo, para N=5 e K=3, o jogo termina em 10 movimentos, restando ao final apenas o jangadeiro 5, que é declarado vencedor. Note que é possível um jogo chegar a um estado em que, não importa o número de movimentos jogados, o número de jangadeiros não diminui (por exemplo, para N=7 e K=2), mas não vamos considerar estes casos: os jangadeiros utilizam apenas as combinações de N e K que garantidamente levam a um vencedor.
1. Tarefa Você deve escrever um programa que, dados N e K, determine de quantos movimentos o jogo foi composto e qual foi o jangadeiro que venceu o jogo. 2. Entrada de Dados O arquivo JOGO.IN contém vários conjuntos de teste. Cada conjunto de teste é composto por uma única linha, que contém dois inteiros positivos, N e K, correspondendo respectivamente ao número de participantes do jogo e o índice (1 ≤ K ≤N) do participante que inicia o jogo com dois búzios, conforme descrito acima. O final do arquivo de testes é indicado quando N =K = 0 (este último conjunto de testes não é válido e não deve ser processado).
Exemplo de Entrada 3 3 5 3 0 0
3. Saída de Dados Seu programa deve produzir um arquivo de saída chamado JOGO.OUT. Para cada conjunto de teste do arquivo de entrada seu programa deve produzir quatro linhas no arquivo de saída. A primeira linha deve conter um identificador do conjunto de teste, no formato “Teste n”, onde N é numerado a partir de 1. Na segunda linha deve aparecer o número de turnos que compuseram
o jogo, precedido de “turnos:”. Na terceira linha deve aparecer o índice do jangadeiro que venceu o jogo, precedido de “vencedor:”. A quarta linha deve ser deixada em branco. A grafia mostrada no Exemplo de Saída, abaixo, deve ser seguida rigorosamente.
Exemplo de Saída
Teste 1 turnos: 2 vencedor: 3 Teste 2 turnos: 10 vencedor: 5
(esta saída corresponde ao exemplo de entrada acima)