#include <algorithm>
#include <iostream>
#include <vector>
// Jarod42
// solution of http://c...content-available-to-author-only...s.com/contest/454/problem/B
int get_unicorn_shift(const std::vector<int>& v)
{
auto mid = std::is_sorted_until(v.begin(), v.end());
if (mid == v.end()) {
return 0;
}
auto end = std::is_sorted_until(mid, v.end());
if (end != v.end() || v.front() < v.back()) {
return -1;
}
return end - mid;
}
int main()
{
std::cout << get_unicorn_shift({2, 1}) << std::endl; // 1
std::cout << get_unicorn_shift({1, 3, 2}) << std::endl; // -1
std::cout << get_unicorn_shift({3, 2, 1}) << std::endl; // -1
std::cout << get_unicorn_shift({1, 2}) << std::endl; // 0
std::cout << get_unicorn_shift({11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) << std::endl; // 10
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKLy8gSmFyb2Q0MgovLyBzb2x1dGlvbiBvZiBodHRwOi8vYy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ucy5jb20vY29udGVzdC80NTQvcHJvYmxlbS9CCgppbnQgZ2V0X3VuaWNvcm5fc2hpZnQoY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgdikKewogICAgYXV0byBtaWQgPSBzdGQ6OmlzX3NvcnRlZF91bnRpbCh2LmJlZ2luKCksIHYuZW5kKCkpOwogICAgaWYgKG1pZCA9PSB2LmVuZCgpKSB7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBhdXRvIGVuZCA9IHN0ZDo6aXNfc29ydGVkX3VudGlsKG1pZCwgdi5lbmQoKSk7CiAgICBpZiAoZW5kICE9IHYuZW5kKCkgfHwgdi5mcm9udCgpIDwgdi5iYWNrKCkpIHsKICAgICAgICByZXR1cm4gLTE7CiAgICB9CiAgICByZXR1cm4gZW5kIC0gbWlkOwp9CgppbnQgbWFpbigpCnsKICAgIHN0ZDo6Y291dCA8PCBnZXRfdW5pY29ybl9zaGlmdCh7MiwgMX0pIDw8IHN0ZDo6ZW5kbDsgICAgLy8gMQogICAgc3RkOjpjb3V0IDw8IGdldF91bmljb3JuX3NoaWZ0KHsxLCAzLCAyfSkgPDwgc3RkOjplbmRsOyAvLyAtMQogICAgc3RkOjpjb3V0IDw8IGdldF91bmljb3JuX3NoaWZ0KHszLCAyLCAxfSkgPDwgc3RkOjplbmRsOyAvLyAtMQogICAgc3RkOjpjb3V0IDw8IGdldF91bmljb3JuX3NoaWZ0KHsxLCAyfSkgPDwgc3RkOjplbmRsOyAgICAvLyAwCiAgICBzdGQ6OmNvdXQgPDwgZ2V0X3VuaWNvcm5fc2hpZnQoezExLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMH0pIDw8IHN0ZDo6ZW5kbDsgLy8gMTAKICAgIHJldHVybiAwOwp9Cg==