numbers.cpp: In function 'll f(int, int, int, bool, bool)':
numbers.cpp:23:38: warning: suggest parentheses around comparison in operand of '|' [-Wparentheses]
ret += f(pos + 1, b, i, small | i < lim, 0);
~~^~~~~
numbers.cpp: In function 'll solve(int)':
numbers.cpp:29:25: warning: format '%lld' expects argument of type 'long long int', but argument 3 has type 'int' [-Wformat=]
sprintf(s, "%lld", n);
^
numbers.cpp: In function 'int main(int, const char**)':
numbers.cpp:37:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld %lld", &a, &b);
~~~~~^~~~~~~~~~~~~~~~~~~~~