package main

func maxWidthRamp(nums []int) int {
	st := make([]int, 0)

	for i, x := range nums {
		if len(st) == 0 || nums[st[len(st)-1]] > x {
			st = append(st, i)
		}
	}

	widest := 0
	for j := len(nums) - 1; j >= 0; j-- {
		for len(st) > 0 && nums[st[len(st)-1]] <= nums[j] {
			widest = max(widest, j-st[len(st)-1])
			st = st[:len(st)-1]
		}
	}

	return widest
}