acwing 789 数的范围

简介: acwing 789 数的范围

活动 - AcWing

最左边的x  ----- >= x

最右边的x ------ <= x

x的前一个 ------- <x

x的后一个 ---------> x

#include<iostream>
#include<cstring>
#include<algorithm>
 
using namespace std ;
const int N = 100010 ;
int a[N] ;
int n , q ;
int main(){
 
  cin >> n >> q ;
  for(int i = 0 ; i < n ; i ++) cin >> a[i] ;
  while(q --){
    int k ; cin >> k ;
    int l = 0 , r= n -1;
    while(l < r){
      int mid = (l+r)>>1 ;
      if(a[mid] >= k) r = mid ;
      else l = mid + 1 ;   
    }
    if(a[l] != k) {
      cout << "-1 -1" << endl ;
      continue ;
    }
    else {
      cout << l << " "  ;
      int l2 = 0 , r2 = n-1 ; 
      while(l2 < r2) {
        int mid = l2 + r2 + 1 >> 1 ;
        if(a[mid] <= k) l2 = mid ;
        else r2 = mid - 1 ;
      }
      cout << l2 << endl ;
    }
  }
  return 0 ;
}
目录
相关文章
【Leetcode -506.相对名次 -507.完美数】
【Leetcode -506.相对名次 -507.完美数】
57 0
【剑指offer】-和为S的两个数-38/67
【剑指offer】-和为S的两个数-38/67
|
7月前
蓝桥杯 1的个数
蓝桥杯 1的个数
37 0
每日一题——“水仙花数”
哈喽大家好,我是保护小周ღ,本期为大家带来的是求“水仙花数”,此水仙花,非彼水仙花,一起来看看把~
125 0
|
算法 C++
【基础算法】几种特殊数(素数、公约数、完全数、亲密数) & C++实现
素数又称为质数,它指在一个大于1的自然数中,除了1和它自身外,没法被其他自然数整除的数。比1大,但不是素数的数称为合数。0和1既不是素数,也不是合数。因为素数的分布没有明显的规律,所以在程序中一般根据素数的定义来判断该数是否为素数。例如哥德巴赫猜想:哥德巴赫通过大量的数据猜测,所有不小于6的偶数,都可以表示为两个奇素数之和。后人将其称之为“1+1”。并且,对于每个不小于9的奇数,都可以表示为三个奇素数之和。
345 0
【基础算法】几种特殊数(素数、公约数、完全数、亲密数) & C++实现
PTA 1091 N-自守数 (15 分)
如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”。
140 0
|
存储 算法
力扣-306. 累加数
累加数 是一个字符串,组成它的数字可以形成累加序列。 一个有效的 累加序列 必须 至少 包含 3 个数。除了最开始的两个数以外,序列中的每个后续数字必须是它之前两个数字之和。 给你一个只包含数字 ‘0’-‘9’ 的字符串,编写一个算法来判断给定输入是否是 累加数 。如果是,返回 true ;否则,返回 false 。 说明:累加序列里的数,除数字 0 之外,不会 以 0 开头,所以不会出现 1, 2, 03 或者 1, 02, 3 的情况。
66 0