最小值很简单,我们只需要把所有的公寓全部挤在一起,那么供他选择的就只有一个。
如果公寓数量等于N或根本没有公寓,那么就没有他的安身之所。
对于最大值,因为一个公寓的左右两边都可以让Maxim住,所以每三个一组,每组放一个公寓,最多分成 n 3 \frac{n}{3} 3n个组。
如果公寓数量大于了 n 3 \frac{n}{3} 3n,则不可能分更多的组,所以满足题意的就是剩下所有的公寓。
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,k;
cin>>n>>k;
if(n==k||k==0){
printf("0 0");
return 0;
}
else{
printf("1 ");
if(k*3<n){
printf("%d",2*k);
}
else{
printf("%d",n-k);
}
}
}