ToggleColumnSol
ptrdung
plain_text
a year ago
1.8 kB
3
Indexable
package training1; import java.util.Scanner; public class ToggleColum { static int countZ(int[][] data, int row) { int count = 0; for(int i = 0; i < data[0].length; i++) { if(data[row][i] == 0) { count++; } } return count; } static void flip(int[][] data, int col) { for(int i = 0; i < data.length; i++) { data[i][col] = (data[i][col] == 0)?1:0; } } static int countOne(int[][] data) { int count = 0; for(int i = 0; i < data.length; i++) { int flag = 0; for(int j = 0; j < data[0].length; j++) { if(data[i][j] == 0) { flag = 1; break; } } if(flag == 0) { count++; } } return count; } static void solution(int[] resuilt, int[][] data, int K) { for(int i = 0; i < data.length; i++) { int countZ = countZ(data, i); int[] visited = new int[data[0].length]; if(countZ > K || (K-countZ) % 2 == 1) { continue; } for(int k = 0; k < data[0].length; k++) { if(data[i][k] == 0) { visited[k] = 1; flip(data, k); } } int numOne = countOne(data); if(numOne > resuilt[0]) { resuilt[0] = numOne; } for(int k = 0; k < data[0].length; k++) { if(visited[k] == 1) { flip(data, k); } } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for(int t = 1; t <= T; t++) { int N = sc.nextInt(); int M = sc.nextInt(); int K = sc.nextInt(); int[][] data = new int[N][M]; for(int i = 0; i < N; i++) { for(int j = 0; j < M; j++) { data[i][j] = sc.nextInt(); } } int[] resuilt = {0}; solution(resuilt, data, K); System.out.println(resuilt[0]); } } }
Editor is loading...
Leave a Comment