1.题目
2.参考代码
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int n ;
cin >> n ;
int mi = 0 , mx = 2e9 ;
for(int i = 1 ; i <= n ; i ++){
int a , b ; cin >> a >> b ;
int r = a / b , l = a / (b + 1) + 1;
mi = max(mi , l) , mx = min(mx , r) ;
}
cout << mi << ' ' << mx << endl;
return 0;
}
3.代码分析
计算一组数对(a, b)中,所有a除以b的商的最小值和最大值。代码通过循环读入n组数对(a, b),然后计算每对数对应的商的最小值和最大值,并更新全局的最小值(mi)和最大值(mx)。最后输出计算得到的最小值和最大值。
-
读入一个整数n,表示接下来有n组数对。
-
初始化最小值mi为0,最大值mx为2e9。
-
循环遍历n组数对。
-
读入当前数对的两个整数a和b。
-
计算当前数对对应的商的最大值r 和最小值 l。
-
更新全局的最小值mi和最大值mx。
-
输出计算得到的最小值和最大值。
考察知识点为二分等。