import java.util.* fun main(arr:Array) { val count = readLine()!!.toInt() var ans = count val mikataLevel = readLine()!!.split(" ").map { it.toInt() } val teki = readLine()!!.split(" ").map { it.toInt() } for(i in mikataLevel.indices) { val que = PriorityQueue { o1, o2 -> if(o1.level == o2.level) o1.count.compareTo(o2.count) else o1.level.compareTo(o2.level) } mikataLevel.forEach{que.add(Mikata(it, 0))} for(j in mikataLevel.indices) { val idx = (i+j)%count val mikata = que.poll() mikata.level += teki[idx]/2 mikata.count++ que.add(mikata) if(mikata.count > ans) { break } } ans = Math.min(ans, que.toList().maxBy { it.count }!!.count) } println(ans) } class Mikata(var level:Int, var count:Int)