#include <bits/stdc++.h>
using namespace std;
int n, k, c;
vector<vector<int>> players;
vector<int> solve(bitset<500> &used, int left, int first) {
if (left == 0) {
int score = 0;
for (int i = 0; i < k; i++) {
int best = 0;
for (int j = 0; j < n; j++)
if (used[j])
best = max(best, players[j][i]);
score += best;
}
return {score};
}
vector<int> ans;
for (int i = first; i < n; i++) {
used[i] = 1;
for (int subans : solve(used, left - 1, i + 1))
ans.push_back(subans);
used[i] = 0;
}
return ans;
}
int main() {
cin >> n >> k >> c;
for (int i = 0; i < n; i++) {
vector<int> player(k);
for (int j = 0; j < k; j++)
cin >> player[j];
players.push_back(player);
}
bitset<500> sub(0);
vector<int> scores = solve(sub, k, 0);
sort(scores.rbegin(), scores.rend());
cout << scores[c - 1] << endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |