package main import . "fmt" import . "os" import bf "bufio" func main() { rd:=bf.NewReader(Stdin) var n,m int Fscan(rd,&n,&m) a := make([]int, n) for i := range a { Fscan(rd,&a[i]) } lb, ub := 0, int(1e9)+1 for lb+1 < ub { mid := (lb+ub)/2 need, ca, ok := mid*m, 0, true for _, v := range a { if v+ca < need { ok=false break } ca = v+ca - need } if ok { lb = mid } else { ub = mid } } Println(lb) }