public class Main { public static void main(String[] args) { int[][] arr = new int[][]{{1, 2}, {3, 4, 5, 6}, {7}}; int tong = 0; int rtong = 0; int ctong = 0; int rmax = 0; int ri = 0; int cmin = 0; int ci = 0; int maxCol = 0; int check = 0; //xác định số cột lớn nhất for (int i = 0; i < arr.length; i++) { cmin = cmin + arr[i][0]; // đặt cmin = tổng các giá trị hàng đầu tiên luôn ở đây if (arr[i].length > maxCol) { maxCol = arr[i].length; // xác định được số cột lớn nhất } } for (int i = 0; i < arr.length; i++) { rtong = 0; for (int j = 0; j < arr[i].length; j++) { ctong = 0; rtong += arr[i][j]; tong += arr[i][j]; if (arr[i].length == maxCol && check != 2) { //thực hiện tìm cmin khi lặp đến hàng có cột lớn nhất đầu tiền (check != 2) check = 1; //xác định đã vào đến mảng con có cột lớn nhất for (int k = 0; k < arr.length; k++) { //for chạy từ mảng con 0 đến mảng con cuối, bắt đầu từ cột 1 đến cột max if (j < arr[k].length) { // kiểm tra nếu số cột của mảng con hiện tại mà ít hơn cột max, thì mới cộng ctong = ctong + arr[k][j]; } } if (cmin > ctong) { // nếu cmin > ctong thì đặt lại cmin=ctong và ci là vị trí cột cmin = ctong; ci = j; } } if (j ==arr[i].length-1 && check==1) { check = 2; // đã xác định được cmin, đặt check = 2 để không lặp lại vòng for (k) ở trên nếu còn mảng con khác có cùng col max } } if (i == 0 || rmax < rtong) { rmax = rtong; ri = i; } } System.out.println("Tong cac phan tu: "+tong); System.out.println("Dong co gia tri lon nhat: "+(ri+1) +" voi tong la: " +rmax); System.out.println("Dong do la: "); for (int i = 0; i < arr[ri].length; i++) { System.out.print(arr[ri][i]+" "); } System.out.println("Cot co gia tri nho nhat: "+(ci+1)+" voi tong la: " + cmin); System.out.println("Cot do la: "); for (int i = 0; i < arr.length; i++) { if (arr[i].length < ci+1) { System.out.print("none "); //nếu không có phần tử thì in ra none } else { System.out.print(arr[i][ci]+" "); } } } }