https://codeforces.com/gym/100551/problem/A 풀어보려고 함. 예제는 나옴


코드는 이거고

https://ideone.com/zZbJPc


어떻게 짠거냐면

먼저 각 간선이 살아있는 시간을 계산함. 첫번째 쿼리 들어오고 나서 생성되서 세번째 쿼리 들어오기 전에 없어지면 lifetime은 1 2 인거지. 시간은 ? 쿼리 기준임

이제 그걸 세그먼트 트리에 업데이트 해뒀음. 세그먼트 트리의 각 노드는 벡터를 하나씩 가지는데, 그 벡터는 그 세그먼트 트리 노드가 나타내는 시간에는 그 간선이 항상 존재한다라는걸 뜻함.

마지막으로 세그먼트 트리를 dfs 해줬음. 각 노드를 타고 내려갈 때마다 그 노드에 포함된 벡터의 모든 노드들을 union 해주고, 리프 노드에 도달하면 component 개수를 출력함. 다시 올라갈 땐 union 해줬던 모든 정점들을 rollback해줌.


이렇게 구현을 했고 답은 맞게 나오는거 같은데 런타임 에러가 뜬다 ㅠㅠ 살려줘