Nth Element Guarantees

The standard says that after nth_element, the element at nth is the one that would be there if the whole range were sorted, and that for every i in [first, nth) and j in [nth, last), comp(*j, *i) is false.

std::vector<int> v = {9, 1, 8, 2, 7, 3, 6, 4, 5};
std::nth_element(v.begin(), v.begin() + 3, v.end());

Which statement is guaranteed?

A

v[4] == 4, because nth counts positions from one

B

v[3] == 4, and v[0..2] holds {1, 2, 3} in some unspecified order

C

v[3] == 4, and v[0..2] is {1, 2, 3} in ascending order

D

v[3] == 4, and the other eight elements are left in their original relative order