/* * Author: srtry * Created: 2025-12-05T23:07:56+09:00 * Coding: utf-8-unix */ use proconio::input; use std::io::{stdout,Write,BufWriter}; use std::collections::BinaryHeap; use std::cmp::Reverse; fn main() { input!{ n:usize, a:[usize;n], b:[usize;n] } let out = stdout(); let mut out = BufWriter::new(out.lock()); let mut ans = 15001; let monsters:BinaryHeap> = a.iter().map(|&e| Reverse((e,0))).collect(); for start in 0..n { let mut monsters_ = monsters.clone(); let mut max_battle = 0; for j in 0..n { let mut weak = monsters_.pop().unwrap(); weak.0.1 += 1; weak.0.0 += b[(start+j)%n]/2; monsters_.push(weak); max_battle = max_battle.max(weak.0.1); } ans = ans.min(max_battle); } write!(out, "{}", ans).unwrap(); }