Cod sursa(job #3344760)

Utilizator Alexutu008Ionita Alexandru-Dumitru Alexutu008 Data 5 martie 2026 15:59:21
Problema Elimin Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;

int n, m, r, c, mx = INT_MIN;
int a[7300][7300];
int rows[7300];
bool visited[7300];
int colsum[7200];

void bkt(int k) {
	if (k == r + 1) {
		memset(colsum, 0, sizeof(colsum));
		for (int i = 1; i <= n; ++i) {
			if (!visited[i])
				for (int j = 1; j <= m; ++j) {
					colsum[j] += a[i][j];
				}
			//else cout << "nu am vizitat randul " << i << '\n';
		}
		sort(colsum + 1, colsum + 1 + m);
		int s = 0;
		for (int i = m; i >= m - c; --i) {
			s += colsum[i];
		}
		mx = max(mx, s);
		//cout << s << '\n';
		return;
	}
	for (int i = rows[k - 1] + 1; i <= n; ++i) {
		if (!visited[i]) {
			visited[i] = 1;
			rows[k] = i;
			bkt(k + 1);
			visited[i] = 0;
		}
	}
}

int main() {
	freopen("elimin.in", "r", stdin);
	freopen("elimin.out", "w", stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);

	cin >> n >> m >> r >> c;
	for (int i = 1; i <= n; ++i)
		for (int j = 1; j <= m; ++j)
			cin >> a[i][j];

	bkt(1);
	cout << mx;
	return 0;
}