Lang:G++
Edit12345678910111213141516171819202122232425262728#include<iostream>using namespace std;long long HilbertNumber(int n ,int x ,int y){if(n == 0) return 1;int m = 1<<(n-1);if(x <= m && y <= m){return HilbertNumber(n-1,y,x);}if(x <= m && y > m){return 1LL*m*m + HilbertNumber(n-1,x,y-m);}if(x > m && y > m){return 2LL*m*m + HilbertNumber(n-1,x-m,y-m);}if(x > m && y <= m){return 3LL*m*m + HilbertNumber(n-1,m+1-y,2*m+1-x);}}int main(){int n,x,y;cin >> n >> x >> y;long long result = HilbertNumber(n,x,y);cout<<result<<endl;return 0;}