File tree Expand file tree Collapse file tree 3 files changed +72
-0
lines changed
Expand file tree Collapse file tree 3 files changed +72
-0
lines changed Original file line number Diff line number Diff line change 1+ from sys import stdin
2+
3+ N , K = map (int , stdin .readline ().strip ().split (' ' ))
4+ arr = [_ for _ in range (1 , N + 1 )]
5+
6+ remove_i = 0
7+ josephus = []
8+ for size in range (N , 0 , - 1 ):
9+ remove_i = (remove_i + (K - 1 )) % size
10+ josephus .append (arr .pop (remove_i ))
11+
12+ print ("<%s>" % ", " .join (map (str , josephus )))
Original file line number Diff line number Diff line change 1+ from sys import stdin
2+
3+ class Queue :
4+
5+ def __init__ (self ):
6+ self .queue = list ()
7+ self .qbp = 0
8+
9+ def push (self , x ):
10+ self .queue .append (x )
11+
12+ def pop (self ):
13+ if self .empty ():
14+ return - 1
15+ else :
16+ self .qbp += 1
17+ return self .queue [self .qbp - 1 ]
18+
19+ def size (self ):
20+ return len (self .queue ) - self .qbp
21+
22+ def empty (self ):
23+ if self .size () == 0 :
24+ return 1
25+ else :
26+ return 0
27+
28+ def front (self ):
29+ if self .empty ():
30+ return - 1
31+ else :
32+ return self .queue [self .qbp ]
33+
34+ def back (self ):
35+ if self .empty ():
36+ return - 1
37+ else :
38+ return self .queue [- 1 ]
39+
40+ queue = Queue ()
41+ for _ in range (int (stdin .readline ())):
42+ cmd_args = stdin .readline ().split ()
43+
44+ if cmd_args [0 ] == "push" :
45+ getattr (queue , cmd_args [0 ])(cmd_args [1 ])
46+ else :
47+ print (getattr (queue , cmd_args [0 ])())
Original file line number Diff line number Diff line change 1+ from sys import stdin
2+
3+ N = int (stdin .readline ())
4+
5+ square = 2
6+ if N <= 2 :
7+ print (N )
8+ else :
9+ while True :
10+ square *= 2
11+ if N <= square :
12+ print ((N - (square // 2 )) * 2 )
13+ break
You can’t perform that action at this time.
0 commit comments