|
|
@@ -0,0 +1,46 @@
|
|
|
+# 1560. Most Visited Sector in a Circular Track
|
|
|
+
|
|
|
+
|
|
|
+# @param {Integer} n
|
|
|
+# @param {Integer[]} rounds
|
|
|
+# @return {Integer[]}
|
|
|
+def most_visited(n, rounds)
|
|
|
+ expanded = []
|
|
|
+
|
|
|
+ expanded.push(rounds.shift())
|
|
|
+ loop do
|
|
|
+ nxt = rounds.shift()
|
|
|
+ break if nxt.nil?()
|
|
|
+
|
|
|
+ i = expanded.last()
|
|
|
+ loop do
|
|
|
+ i = i+1 > n ? 1 : i+1
|
|
|
+ expanded.push(i)
|
|
|
+ break if i == nxt
|
|
|
+ end
|
|
|
+
|
|
|
+ break if rounds.last().nil?()
|
|
|
+ end
|
|
|
+
|
|
|
+ uses = Hash.new(0)
|
|
|
+ expanded.each {|x| uses[x] += 1}
|
|
|
+
|
|
|
+ max_amount = 0
|
|
|
+ uses.each_pair {|k, v| max_amount = v > max_amount ? v : max_amount}
|
|
|
+
|
|
|
+ res = []
|
|
|
+ uses.each_pair {|k, v| if v == max_amount then res.push(k) end}
|
|
|
+ res.sort()
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+def main()
|
|
|
+ puts String(most_visited(4, [1, 3, 1, 2]) == [1,2])
|
|
|
+ puts String(most_visited(2, [2,1,2,1,2,1,2,1,2]) == [2])
|
|
|
+ puts String(most_visited(7, [1,3,5,7]) == [1,2,3,4,5,6,7])
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+if __FILE__ == $0
|
|
|
+ main()
|
|
|
+end
|