思路
最小就是达到下限之后其他全是1 , 最大就是达到上限后全是最大的那个
代码
#include <bits/stdc++.h>
using namespace std ;
int n , l , r ;
int minn = 1, maxx = 1;
int main () {
cin >> n >> l >> r ;
for(int i = 1 ; i < l ; i ++) {
minn *=2 ;
}
int rest = 1 , ans = 0 , tim = 1 ;
for(int i = 1 ; i < l ; i ++) {
ans += tim*2*i ;
}
int i = 0 ;ans = 0 ;
for(int i = 1 ; i <= n ; i ++) {
if(i <= l) {
// cout << rest<< " " ;
ans += rest ;
// cout << ans<<"*" ;
rest *= 2 ;
}else {
// cout << "1 " ;
ans += 1 ;
}
}
cout << ans << " " ;
ans = 0 , rest = 1 ;
i = 0 ;
for(int i = 1 ; i <= n ; i ++) {
if(i < r) {
ans += rest ;
rest *= 2 ;
}else {
ans += rest ;
}
}
cout << ans << endl ;
return 0 ;
}