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

 

19621번: 회의실 배정 2

서준이는 아빠로부터 N개의 회의와 하나의 회의실을 선물로 받았다. 각 회의는 시작 시간, 끝나는 시간, 회의 인원이 주어지고 한 회의실에서 동시에 두 개 이상의 회의가 진행될 수 없다. 단,

www.acmicpc.net

 

 

[난이도] 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

+ Recent posts