https://www.acmicpc.net/problem/19621
[난이도] Silver2
[유형] 브루트포스
[풀이]
N 제한이 25밖에 안되기 때문에 2^N 개의 회의를 선택할 수 있는 경우의 수를 모두
구해보면 됩니다.
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int N,a[26],b[26],c[26],ans,check[26];
void sol(int n){
if(n==N) {
int prev=-2,sum=0;
bool ok=1;
for(int i=0;i<N;i++){
if(check[i]){
if(i-prev==1) {
ok=0;
break;
}else{
prev=i;
sum+=c[i];
}
}
}
if(ok) ans=max(ans,sum);
return;
}
check[n]=1;
sol(n+1);
check[n]=0;
sol(n+1);
}
int main(){
scanf("%d",&N);
for(int i=0;i<N;i++) scanf("%d%d%d",&a[i],&b[i],&c[i]);
sol(0);
printf("%d",ans);
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Silver2/19621.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Gold3] 19623 : 회의실 배정 4 (C++) (0) | 2022.08.22 |
---|---|
[BOJ/백준][Silver2] 19622 : 회의실 배정 3 (C++) (0) | 2022.08.22 |
[BOJ/백준][Gold3] 16437 : 양 구출 작전 (C++) (0) | 2022.08.21 |
[BOJ/백준][Gold4] 16472 : 고냥이 (C++) (0) | 2022.08.21 |
[BOJ/백준][Gold4] 19538 : 루머 (C++) (0) | 2022.08.21 |