/C05008 - Loại bỏ cột và hàng có tổng lớn nhất ra khỏi ma trận

<Problem>

https://code.ptit.edu.vn/student/question/C05008
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <math.h>


#define max(i, j) ((i > j) ? i : j)
#define min(i, j) ((i < j) ? i : j)



int main() {

	int t;
	scanf("%d", &t);
	//t = 1;

	//while (t--) {
	for (int test = 1; test <= t; test++) {
		int n, m;
		scanf("%d %d", &n, &m);

		int arr[100][100];

		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				scanf("%d", &arr[i][j]);
			}
		}

		int maxOfRow = 0;
		int row = 0;

		for (int i = 0; i < n; i++) {

			int sum = 0;

			for (int j = 0; j < m; j++) {
				sum += arr[i][j];
			}

			if (sum > maxOfRow) {
				maxOfRow = sum;
				row = i;
			}
		}

		int maxOfCol = 0;
		int col = 0;

		for (int i = 0; i < m; i++) {

			int sum = 0;

			for (int j = 0; j < n; j++) {
				if (j == row) continue;

				sum += arr[j][i];
			}

			if (sum > maxOfCol) {
				maxOfCol = sum;
				col = i;
			}

		}

		printf("Test %d:\n", test);

		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				if (i == row || j == col) continue;
				printf("%d ", arr[i][j]);
			}
			printf("\n");
		}
	}

	return 0;
}