이분매칭으로 하니까 check배열 매번 초기화 안해도 시간초과남... 하긴 모든 입력이 10만이면 답없을듯.


<코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
int G, p, g, d[100001], ans, t, flag = 1;
 
int f(int x) {
    return x == d[x] ? x : d[x] = f(d[x]);
}
 
int main() {
    scanf("%d%d"&G, &p);
    for (int i = 0; i <= G; i++) d[i] = i;
    while (p--) {
        scanf("%d"&g);
        t = f(g);
        if (t && flag) d[t] = t - 1;
        else flag = 0;
        ans += flag;
    }
    printf("%d\n", ans);
    return 0;
}
cs


'BOJ' 카테고리의 다른 글

3780 네트워크 연결  (0) 2017.09.06
9938 방 청소  (0) 2017.09.06
1976 여행 가자  (0) 2017.09.06
4195 친구 네트워크  (0) 2017.09.06
1717 집합의 표현  (0) 2017.09.06

+ Recent posts