查找特定的值2 这咋写?

描述
在一个从大到小排列的序列(下标从0开始)中查找一个给定的值,并输出该值的下标。如果出现了重复的值,返回重复元素的最后一个位置的下标。
输入描述:
第一行包含一个正整数n,表示序列中元素个数。1 <= n <= 10,000。 第二行包含n个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格隔开。请注意各个元素的绝对值不超过10,000。 第三行包含一个整数x,为需要查找的特定值。请注意此特定值x的绝对值不超过10,000。
输出描述:
若序列中存在x,则输出x的下标;如果序列中存在重复的x,输出x最后一次出现的下标;否则输出-1。
输入样例1:
14
92 82 76 65 65 51 50 43 43 32 21 15 11 11
43

输出样例1:
8输入样例2:
13
112 93 77 54 54 32 32 32 29 21 20 14 12
66

输出样例2:
-1


#include <iostream>
#include <vector>

int main()
{
    int n;
    std::cin >> n;
    std::vector<int> numbers(n);
    for (int i = 0; i < n; i++)
        std::cin >> numbers[i];
    int x;
    std::cin >> x;
    int index = -1;
    for (int i = 0; i < n; i++)
    {
        if (numbers[i] == x)
            index = i;
    }
    std::cout << index << std::endl;
    return 0;
}