반응형

https://www.acmicpc.net/problem/3980

 

3980번: 선발 명단

각각의 테스트 케이스에 대해서, 모든 포지션의 선수를 채웠을 때, 능력치의 합의 최댓값을 한 줄에 하나씩 출력한다. 항상 하나 이상의 올바른 라인업을 만들 수 있다.

www.acmicpc.net

 

모든 포지션의 선수를 채우는, 모든 경우의 수에서의 능력치 합의 최댓값을 구해주었습니다.

#include <iostream>
#include <algorithm>
using namespace std;

int c, s[11][11], ans;
bool visit[11] = { false };

void f(int idx, int sum) {
	if (idx == 11) {
		ans = max(ans, sum);
		return;
	}
	for (int i = 0; i < 11; i++) {
		if (!visit[i] && s[idx][i] > 0) {
			visit[i] = true;
			f(idx + 1, sum + s[idx][i]);
			visit[i] = false;
		}
	}
}

int main() {
	scanf("%d", &c);
	while (c--) {
		ans = 0;
		for (int i = 0; i < 11; i++) {
			for (int j = 0; j < 11; j++) {
				scanf("%d", &s[i][j]);
			}
		}
		f(0, 0);
		printf("%d\n", ans);
	}
}
반응형

'Algorithm' 카테고리의 다른 글

백준 17490 : 일감호에 다리 놓기  (0) 2021.11.17
백준 17825 : 주사위 윷놀이  (0) 2021.11.17
백준 17090 : 미로 탈출하기  (0) 2021.11.17
백준 1374 : 강의실  (0) 2021.11.17
백준 2250 : 트리의 높이와 너비  (0) 2021.11.17

+ Recent posts