样例过了,10pts求调
查看原帖
样例过了,10pts求调
1195928
___xuzhimo___楼主2024/11/11 21:32
#include <bits/stdc++.h>
using namespace std;
int a[105][105], b[105][105], ans;//a数组:存储输入的魔法后的值,b数组:每行每列的元素之和(当个元素除外)
int n, m, k;
int s;

int check(int s, int b) {
	int ans = 0;
	for (int i = 0; i < n; i++) {
		if (i != s)
			ans += a[i][b];
	}
	for (int i = 0; i < m; i++) {
		if (i != b)
			ans += a[s][i];
	}
	return ans;
}

int main() {
	cin >> n >> m >> k;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cin >> a[i][j];
		}
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			b[i][j] = check(i, j);//初始化b数组
		}
	}
	for (ans = 0; ans <= 1000000; ans++) {
		s = 0;
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				if (a[i][j] >= b[i][j])
					s++;
			}
		}
		if (s >= k) {
			cout << ans;
			exit(0);
		}
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				a[i][j] -= 1;//魔法后的数组a
				b[i][j] = b[i][j] - n - m + 2;//魔法后的每行每列元素之和,因为少了n-1+m-1.
			}
		}
	}
	return 0;
}
2024/11/11 21:32
加载中...