유니온 파인드 나중에 꼭 복습해야 할 것 같다.
<코드>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include <stdio.h> int n, l, a, b, d[300001]; bool c[300001], g; int f(int x) { return x == d[x] ? x : d[x] = f(d[x]); } void u(int x, int y) { x = f(x); y = f(y); if (x != y) d[y] = x; } int main() { scanf("%d%d", &n, &l); for (int i = 0; i <= l; i++) d[i] = i; for (int i = 1; i <= n; i++) { g = 1; scanf("%d%d", &a, &b); if (!c[a]) { c[a] = 1; u(f(b), f(a)); } else if (!c[b]) { c[b] = 1; u(f(a), f(b)); } else if (!c[f(a)]) { c[f(a)] = 1; u(f(b), f(a)); } else if (!c[f(b)]) { c[f(b)] = 1; u(f(a), f(b)); } else g = 0; printf(g ? "LADICA\n" : "SMECE\n"); } return 0; } | cs |
'BOJ' 카테고리의 다른 글
3621 족보 (0) | 2017.09.06 |
---|---|
3780 네트워크 연결 (0) | 2017.09.06 |
10775 공항 (0) | 2017.09.06 |
1976 여행 가자 (0) | 2017.09.06 |
4195 친구 네트워크 (0) | 2017.09.06 |