Given n people standing in a circle where 1st is having sword, find the luckiest person in the circle, if from 1st soldier who is having a sword each have to kill the next soldier and handover the sword to next soldier, in turn the soldier will kill the adjacent soldier and handover the sword to next soldier such that one soldier remain in this war who is not killed by anyone.
Prerequisite : Puzzle 81 | 100 people in a circle with gun puzzle
Input : 5
Output : 3
N = 5
Soldier 1 2 3 4 5 (5 soldiers)
In first go 1 3 5 (remains) as 2 and 4 killed by 1 and 3.
In second go 3 as 5 killed 1 and 3rd kill 5 soldier 3 remains alive.
Input : 100
Output : 73
N = 10
Soldiers 1 2 3 4 5 6 7 8 9 10 (10 soldiers)
In first 1 3 5 7 9 as 2 4 6 8 10 were killed by 1 3 5 7 and 9.
In second 1 5 9 as 9 kill 1 and in turn 5 kill 9th soldier.
In third 5 5th soldiers remain alive
Approach : The idea is to use circular linked list. A circular linked list is made based on number of soldier N. As rule state you have to kill your adjacent soldier and handover the sword to the next soldier who in turn kill his adjacent soldier and handover sword to the next soldier. So in circular linked list the adjacent soldier are killed and the remaining soldier fights against each other in a circular way and a single soldier survive who is not killed by anyone.
- Lucky alive person in a circle | Set - 2
- Josephus problem | Set 1 (A O(n) Solution)
- Find Two Missing Numbers | Set 2 (XOR based solution)
- Draw circle in C graphics
- Area of a Circumscribed Circle of a Square
- Area of square Circumscribed by Circle
- Program to print circle pattern
- Program to find Circumference of a Circle
- Equation of circle from centre and radius
- Find the other-end coordinates of diameter in a circle
- Number of rectangles in a circle of radius R
- The biggest possible circle that can be inscribed in a rectangle
- Find the center of the circle using endpoints of diameter
- Given equation of a circle as string, find area
- Josephus Circle using circular linked list
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. 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.