首先先预处理出第i个音阶的终点(i∈[1,n]),我们对于每个时间询问属于哪一段区间,用二分查找。
#include<iostream>
#include<cstdio>
using namespace std;
int n,q,b[50005],x,a;
int find(int x){
int l=1,r=n;
while(l<r){
int mid=(l+r)/2;
if (b[mid]<=x)//如果找到的mid所属的时刻小于x,就往右找。
l=mid+1;