Pagini recente » Monitorul de evaluare | Cod sursa (job #982137)
Cod sursa(job #982137)
#include<stdio.h>
int n, x, y, Ans;
void get_ans(int N, int x, int y){
if(N == 0)
return ;
int med = 1 << (N - 1);
int Sum = med * med;
if(x <= med && y <= med)
get_ans(N - 1, y, x);
else
if(x > med && y <= med){
Ans += Sum;
get_ans(N - 1, x - med, y);
}
else
if(x > med && y > med){
Ans += 2 * Sum;
get_ans(N - 1, x - med, y - med);
}
else{
Ans += 3 * Sum;
get_ans(N - 1, 2 * med - y + 1, med - x + 1);
}
}
int main(){
freopen("fractal.in", "r", stdin);
freopen("fractal.out", "w", stdout);
scanf("%d %d %d", &n, &x, &y);
get_ans(n, y, x);
printf("%d", Ans);
return 0;
}