hiho week 163 register

Ended

Participants:309

Verdict:Accepted
Score:100 / 100
Submitted:2017-08-13 08:46:09

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
long long f(int n, int x, int y)
{
    if (n == 0) return 1;
    int m = 1 << (n - 1);
    if (x <= m && y <= m)
    {
        return f(n - 1, y, x);
    }
    if (x > m && y <= m)
    {
        return 3LL * m * m + f(n - 1, m-y+1, m * 2 - x + 1);  //  
    }
    if (x <= m && y > m)
    {
        return 1LL * m * m + f(n - 1, x, y - m);
    }
    if (x > m && y > m)
    {
        return 2LL * m * m + f(n - 1, x - m, y - m);
    }
}
int main()
{
    int n, x, y;
    scanf("%d %d %d", &n, &x, &y);
    printf("%lld", f(n, x, y));
    return 0;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX