※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 2128번 문제인 마지막 조별 시합이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/2128
특히, 집합의 원소가
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int N, M, K;
int A[1000];
int ans;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N >> M >> K;
for (int i = 0; i < N; i++) {
int X; cin >> X;
int &val = A[i];
while (X--) {
int x; cin >> x;
val |= (1 << (x - 1));
}
}
M = (1 << M);
for (int i = 0; i < M; i++) {
if (__builtin_popcount(i) == K) {
int cnt = 0;
for (int n = 0; n < N; n++) {
if ((A[n] & i) == A[n]) cnt++;
}
ans = max(ans, cnt);
}
}
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 7873 // C++] Decision (0) | 2024.08.06 |
---|---|
[BOJ 12181 // C++] Googlander (Large) (0) | 2024.08.05 |
[BOJ 20914 // C++] QWERTY 자판 (0) | 2024.08.03 |
[BOJ 22288 // C++] Rainbow Road Race (0) | 2024.08.02 |
[BOJ 2874 // C++] 검정 직사각형 (0) | 2024.08.01 |