Pagini recente » Cod sursa (job #1845542) | Cod sursa (job #632162) | Cod sursa (job #2147377) | Cod sursa (job #2172491) | Cod sursa (job #2143331)
//package Fractal;
import java.io.*;
import java.util.*;
public class Main {
private static final String INPUT_FILE_PATH = "fractal.in";
private static final String OUTPUT_FILE_PATH = "fractal.out";
public static int fractal(int x, int y, int k) {
if (k == 1) {
if (x == 1 && y == 1)
return 0;
else if (x == 1 && y == 2)
return 1;
else if (x == 2 && y == 2)
return 2;
else
return 3;
} else {
int l = (int) Math.pow(2, k);
int halfL = l / 2;
if (x <= halfL && y <= halfL)
return fractal(y, x, k - 1);
else if (x <= halfL && y > halfL)
return 1 * halfL * halfL + fractal(x, y - halfL, k - 1);
else if (x > halfL && y > halfL)
return 2 * halfL * halfL + fractal(x - halfL, y - halfL, k - 1);
else
return 3 * halfL * halfL + fractal(halfL - y + 1, l - x + 1, k - 1);
}
}
public static void main(String args[]) throws IOException {
Scanner in = new Scanner(new FileReader(INPUT_FILE_PATH));
PrintWriter out = new PrintWriter(OUTPUT_FILE_PATH);
int k = in.nextInt();
int x = in.nextInt();
int y = in.nextInt();
out.println(fractal(x, y, k));
out.flush();
in.close();
out.close();
}
}