codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
//Cutting paper import java.util.Scanner; public class Solution { static int countT; static int countX; public static void main(String[] args) { //System.setIn(new FileInputStream("input1.txt")); Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for (int t = 1; t <= T; t++) { int n = sc.nextInt(); int[][] a = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i][j] = sc.nextInt(); } } countT = countX = 0; countTrang(a, 0, 0, n); System.out.println("Case #"+t); System.out.print(countT+" "); System.out.println(countX); } } static void countTrang(int[][] a, int x, int y, int s) { if (s == 0) return; if (checkTrang(a, x, y, s)) { countT++; } else if (checkXanh(a, x, y, s)) { countX++; } else { countTrang(a, x, y, s / 2); countTrang(a, x + s / 2, y, s / 2); countTrang(a, x, y + s / 2, s / 2); countTrang(a, x + s / 2, y + s / 2, s / 2); } } static boolean checkTrang(int[][] a, int x, int y, int s) { for (int i = x; i < x + s; i++) { for (int j = y; j < y + s; j++) { if (a[i][j] != 0) return false; } } return true; } static boolean checkXanh(int[][] a, int x, int y, int s) { for (int i = x; i < x + s; i++) { for (int j = y; j < y + s; j++) { if (a[i][j] != 1) return false; } } return true; } }
Private
[
?
]
Run code
Submit