789. 数的范围 - AcWing题库
#include <bits/stdc++.h>
using namespace std;
int n,q;
const int N=100007;
int a[N];
void solve(){//lower_bound是大于等于 upper_bound是大于
int num;cin>>num;
if(lower_bound(a,a+n,num)!=a+n&&*lower_bound(a,a+n,num)==num)cout<<lower_bound(a,a+n,num)-a<<" "<<upper_bound(a,a+n,num)-a-1<<'\n';
else cout<<"-1 -1"<<'\n';//一定要记得这里大于等于必须要等于这个数
}
int main(){
int t=1;
cin>>n>>t;
for(int i=0;i<n;i++)cin>>a[i];
while(t--)solve();
return 0;
}
4956. 冶炼金属 - AcWing题库
#include <bits/stdc++.h>
using namespace std;
int a,b;
int v_min=1;
int v_max=1e9+1;
int get(int a,int b){
int l=1,r=1e9+1;
while(l<r){
int mid=l+r>>1;
if(a/mid<=b)r=mid;//如果a/转化率得到的金属数<=b那么转化率要小一点
else l=mid+1;
}
return r;
}
int main(){
int t;cin>>t;
while(t--){
cin>>a>>b;//a个金属 最后抓暖成了b个目标金属
v_min=max(v_min,get(a,b));
v_max=min(v_max,get(a,b-1)-1);//a个金属 得到了b-1个金属的转化率-1
}
cout<<v_min<<' '<<v_max;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int a,b;
int v_min=1;
int v_max=1e9+1;
int main(){
int t;cin>>t;
while(t--){
cin>>a>>b;//a个金属 最后抓暖成了b个目标金属
v_min=max(a/(b+1)+1,v_min);
v_max=min(a/b,v_max);
}
cout<<v_min<<' '<<v_max;
return 0;
}