Roleta Romana

Contribuição de: Marianna Reis

Gostei! Vamos usar esse! Talvez. Mas mostre-me outro. Não gostei! Mostre-me outro.


Este problema foi utilizado em 166 Dojo(s).

O historiador Flavius Josephus relatou como, no confilto Romano-Judaico em 67 D.C., os romanos tomaram a cidade de Jotapata, onde ele era o comandantes. Escapando, Josephus se encontrou preso em uma caverna com mais 40 companheiros. Os romanos descobriram o esconderijo e fizeram um convite para que ele se rendessem, mas seus companheiros se recusaram a permitir que ele fizesse isso. Ele então sugeriu que todos fizessem um suicídio coletivo, onde pela ordem decidida por todos, um por um seria morto pelo outro.

Todos ficaram em círculo e, começando em um determinado ponto, em sentido horário, cada terceira pessoa seria morta. O único sobrevivente foi Sojephus, que se rendeu aos romanos. Isso nos leva a questão: Josephus já sabia exatamente onde ficar para que fosse o único sobrevivente?

Para se preparar para uma situação como essa, escreva um programa que determine qual posição você deve ficar no círculo para poder sobreviver. Você deverá informar a quantidade de pessoas no círculo (n > 0), a posição da pessoa que irá começar o suicídio (1 <= i <= n) e o "passo", isto é, de quantas em quantas pessoas, deverá ser morta (k > 0)

  • n > 0 pessoas são organizada em um círculo, numeradas de 1 a n em sentido horário;
  • Iniciando na pessoa i, conta-se no sentido horário, até que se chegue na pessoa de valor k (k > 0), que é rapidamente morta.
  • Continuamos a contar k pessoas no sentido horário, a partir da pessoa a esquerda da que foi morta.
  • Esse processo é repetido indefinidamente, até que apenas uma pessoa seja a sobrevivente.

Por exemplo quando n = 5, k = 2 e i = 1, a ordem de execuções é 2, 5, 3, e 1. O sobrevivente é 4.

Já visualizados


 

Soluções

Envie sua solução!