历史最高MVP
2025-04-05 14:30:54
发布于:浙江
9阅读
0回复
0点赞
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
scanf("%d", &n);
int **matrix = (int **)malloc(n * sizeof(int *));
for (int i = 0; i < n; i++) {
matrix[i] = (int *)malloc(n * sizeof(int));
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
// Precompute row sums and column sums
int *row_sums = (int *)malloc(n * sizeof(int));
int *col_sums = (int *)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
row_sums[i] = 0;
for (int j = 0; j < n; j++) {
row_sums[i] += matrix[i][j];
}
}
for (int j = 0; j < n; j++) {
col_sums[j] = 0;
for (int i = 0; i < n; i++) {
col_sums[j] += matrix[i][j];
}
}
int max_score = -1;
int found = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (matrix[i][j] == 0) {
found = 1;
int current_score = row_sums[i] + col_sums[j];
if (current_score > max_score) {
max_score = current_score;
}
}
}
}
if (found) {
printf("%d\n", max_score);
} else {
printf("Bad Game!\n");
}
// Free allocated memory
for (int i = 0; i < n; i++) {
free(matrix[i]);
}
free(matrix);
free(row_sums);
free(col_sums);
return 0;
}
这里空空如也
有帮助,赞一个