我会从小到大的,但我不知道从大到小的怎么做……

查找特定的值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<bits/stdc++.h>
using namespace std;
int main()
{
    int x[1010],f=0,n,y,thei;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>x[i];
    }
    cin>>y;
    for(int i=1;i<=n;i++)
    {
        if(x[i]==y) 
        {
            f=1;
            thei=i;
        }
    }
    if(!f) cout<<"-1";
    else cout<<thei;
}

从大到小和从小到大有很大区别吗,不就是二分法判断的时候符号调一下就行了吗