#include <algorithm>
#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param weights int整型vector 
     * @param target int整型 
     * @return int整型vector
     */
    vector<int> searchRange(vector<int>& weights, int target) {
        // write code here
        vector<int> ans;
        // 注意weight为降序,所以我们要找小于等于targt的
        // 找到第一个小于或等于target的数的下标
        int left = lower_bound(weights.begin(),weights.end(),target,greater<int>()) - weights.begin();
        // 找到第一个小于target的数的下标
        int right = upper_bound(weights.begin(),weights.end(),target,greater<int>()) - weights.begin();
        // 证明没有等于target的元素
        if(left==right)
        {
            ans.emplace_back(-1);
            ans.emplace_back(-1);
        }
        else {
            ans.emplace_back(left);
            ans.emplace_back(right-1);
        }
        return ans;
    }
};