返回题解分享
讨论 / 题解分享/ 帖子详情

组队(结果填空) - 题解

#include <bits/stdc++.h>

using namespace std;

vector<int> sorce[20];
int select[5], maxV;
bool ist[20];

void check() {
    for (int i = 0; i < 5; i ++) cout << select[i] << ' ';
    puts("");
    int tmp = 0;
    for (int i = 0; i < 5; i ++) {
        tmp += sorce[select[i]][i];
    }
    maxV = maxV > tmp ? maxV : tmp;
    return;
}

void dfs(int u) {
    if (u == 5) {
        check();
        return;
    }

    for (int i = 0; i < 20; i ++)   
        if (!ist[i]) {
            ist[i] = true;
            select[u] = i;
            dfs(u + 1);
            ist[i] = false;
        }
}

int main(void) {
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    for (int i = 0; i < 20; i ++) {
        int idx; cin >> idx;
        for (int j = 0; j < 5; j ++) {
            int tmp; cin >> tmp;
            sorce[i].push_back(tmp);
        }
    }

    dfs(0);

    cout << maxV;

    return 0;
}
0 回复 0 转发 1 喜欢 3 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!