Given that N person (numbered 1 to N) standing as to form a circle. They all have the gun in their hand which is pointed to their leftmost Partner.
Every one shoots such that 1 shoot 2, 3 shoots 4, 5 shoots 6 …. (N-1)the shoot N (if N is even otherwise N shoots 1).
Again on the second iteration, they shoot the rest of remains as above mentioned logic (now for n as even, 1 will shoot to 3, 5 will shoot to 7 and so on).
The task is to find which person is the luckiest(didn’t die)?
Input: N = 3
As N = 3 then 1 will shoot 2, 3 will shoot 1 hence 3 is the luckiest person.
Input: N = 8
Here as N = 8, 1 will shoot 1, 3 will shoot 4, 5 will shoot 6, 7 will shoot 8, Again 1 will shoot 3, 5 will shoot 7, Again 1 will shoot 5 and hence 1 is the luckiest person.
This problem has already been discussed in Lucky alive person in a circle | Code Solution to sword puzzle. In this post, a different approach is discussed.
- Take the Binary Equivalent of N.
- Find its 1’s compliment and convert its equal decimal number N`.
- find |N – N`|.
Below is the implementation of the above approach:
Alternate Shorter Implementation :
The approach used here is same.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Lucky alive person in a circle | Code Solution to sword puzzle
- Count of ways to distribute N items among 3 people with one person receiving maximum
- Implementation of Tic-Tac-Toe for 2 person game (User vs. User)
- Minimum Enclosing Circle | Set 1
- Minimum enclosing circle | Set 2 - Welzl's algorithm
- Draw a circle without floating point arithmetic
- Mid-Point Circle Drawing Algorithm
- Shortest Superstring Problem | Set 2 (Using Set Cover)
- Prime Number of Set Bits in Binary Representation | Set 2
- Check whether the number has only first and last bits set | Set 2
- Disjoint Set Union on trees | Set 1
- Disjoint Set Union on trees | Set 2
- Prime Number of Set Bits in Binary Representation | Set 1
- Sort an array according to count of set bits | Set 2
- Count total set bits in all numbers from 1 to n | Set 2
- Count total set bits in all numbers from 1 to N | Set 3
- Turn off the rightmost set bit | Set 2
- Position of rightmost set bit
- Count set bits in an integer
- Turn off the rightmost set bit
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.
Improved By : khushboogarg659