π€λ¬Έμ μ΄ν΄
μ§μ€μ μκ³ μλ μ¬λλ€μ΄ νν°μ μ°Έμνλ κ²½μ° κ·Έ νν°μμ μ§μ€λ§ λ§ν΄μΌνκ³ , μμ μκ΄μμ΄ μ§μ€μ νλ²μ΄λΌλ λ£κ² λλ μ¬λλ€μ΄ μ°Έμνλ νν°λ μ§μ€λ§ λ§ν΄μΌ ν λ κ³Όμ₯λ μ΄μΌκΈ°λ₯Ό ν μ μλ νν°μ κ°μλ₯Ό ꡬνλ©΄ λλ λ¬Έμ μ΄λ€.
π‘첫λ²μ§Έ μμ΄λμ΄
μ§μ€μ μλ μ¬λμ΄ ν¬ν¨λ νν°μ κ° μ¬λλ€μ λͺ¨λ μ§μ€μ μκ³ μλ€κ³ μ²λ¦¬ν΄μ£Όκ³ μ΄ κ³Όμ μ λ°λ³΅νλ©΄ μ§μ€λ‘ λ§ν΄μΌ νλ νν°μ κ³Όμ₯ν΄μ λ§ν΄λ λλ νν°λ₯Ό ꡬλΆν΄μ€ μ μλ€κ³ μκ°νλ€.
π₯νμ΄π₯
know[i] : iλ² μ¬λμ΄ μ§μ€μ μλ©΄ true, λͺ¨λ₯΄λ©΄ false
party_know[i] : iλ² νν°κ° μ§μ€μ λ§ν΄μΌ νλ νν°λ©΄ true, κ³Όμ₯ν΄μ λ§ν΄λ λλ νν°λ©΄ false
party[i][j] : iλ²μ§Έ νν°μ μ°Έμν μ¬λλ€μ λ²νΈλ₯Ό μ μ₯
μ²μ μ§μ€μ μκ³ μλ μ¬λλ€μ΄ μ°Έμ¬νλ νν°λ₯Ό trueλ‘ λ°κΏμ€λ€.
μ§μ€μ λ§ν΄μΌ νλ νν°μμ μ§μ€μ λͺ¨λ₯΄λ μ¬λλ€μ μ§μ€μ μκ³ μλ€κ³ μ²λ¦¬ν΄μ£Όκ³ , μ§μ€μ μκ²λ μ¬λλ€μ΄ ν¬ν¨λ νν°λ€μ μ§μ€μ λ§ν΄μΌ νλ νν°λ‘ μ²λ¦¬ν΄μ€λ€.
μλ‘κ² μ§μ€μ μκ²λλ μ¬λμ΄ μκΈ°μ§ μμ λκΉμ§ μ κ³Όμ μ λ°λ³΅ν΄μ£Όκ³ party_knowμ κ°μ΄ falseμΈ κ²μ κ°μλ₯Ό μΈμ μΆλ ₯ν΄μ€λ€.
#include <iostream>
#include <vector>
using namespace std;
int n, m;
vector<vector<int>> party;
bool party_know[52];
bool know[52];
bool solve() {
int flag = 0;
for (int i = 0; i < m; i++) {
if (party_know[i]) {
for (int x: party[i]) {
if (know[x]) continue;
know[x] = true;
flag = 1;
}
}
}
for (int i = 0; i < m; i++) {
if (party_know[i]) continue;
for (int x: party[i]) {
if (know[x]) {
party_know[i] = true;
}
}
}
return flag;
}
int main() {
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
cin >> n >> m;
party.resize(m + 2);
int a, b;
cin >> a;
for (int i = 0; i < a; i++) {
cin >> b;
know[b] = true;
}
for (int i = 0; i < m; i++) {
cin >> a;
for (int j = 0; j < a; j++) {
cin >> b;
party[i].push_back(b);
if (know[b]) {
party_know[i] = true;
}
}
}
int flag = 0;
for (int i = 0; i < m; i++) {
if (party_know[i]) {
for (int x: party[i]) {
know[x] = true;
flag = 1;
}
}
}
for (int i = 0; i < m; i++) {
if (party_know[i]) continue;
for (int x: party[i]) {
if (know[x]) {
party_know[i] = true;
flag = 1;
}
}
}
while (flag) {
flag = solve();
}
int cnt = 0;
for (int i = 0; i < m; i++) {
if (!party_know[i])cnt++;
}
cout << cnt;
}
'λ°±μ€ > C++' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€/C++] 16457λ² λ¨νμ μ΄μΌκΈ° (0) | 2022.08.12 |
---|---|
[λ°±μ€/C++] 2239λ² μ€λμΏ (0) | 2022.08.11 |
[λ°±μ€/C++] 17143λ² λμμ (0) | 2022.07.26 |
[λ°±μ€/C++] 1766λ² λ¬Έμ μ§ (0) | 2022.07.21 |
[λ°±μ€/C++] 13398λ² μ°μν© 2 (0) | 2022.07.20 |