human
I found an interesting problem on https://leetcode.com/problems/partition-array-into-disjoint-intervals/:
Given an array A, partition it into two (contiguous) subarrays left and right so that:

Every element in left is less than or equal to every element in right.
left and right are non-empty.
left has the smallest possible size.

Return the length of left after such a partitioning.  It is guaranteed that such a partitioning exists.
 
Example 1:
Input: [5,0,3,8,6]
Output: 3
Explanation: left = [5,0,3], right = [8,6]

Example 2:
Input: [1,1,1,0,6,12]
Output: 4
Explanation: left = [1,1,1,0], right = [6,12]

 

Note:

2 <= A.length <= 30000
0 <= A[i] <= 10^6
It is guaranteed there is at least one way to partition A as described.

I tried it in Python, but could not do it. Can you solve it?

=====
Write me a the Python program you requested?
assistant
#Here is the Python program you requested.

class Solution:
    def partitionDisjoint(self, A: List[int]) -> int:
        l = [A[0]]
        r = [A[-1]]

        for i, v in enumerate(A):
            if i == 0:
                continue

            l.append(max(l[i-1], A[i]))
            r.append(min(r[i-1], A[len(A) - i - 1]))

        r.reverse()
        for i in range(1, len(l)):
            if l[i-1] <= r[i]:
                return i