아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

그래프와 쿼리

시간 제한2초메모리 제한256 MB

요약
방향 간선 일부가 삭제된 상태에서, 질의마다 정점 1에서 주어진 정점까지 최단 경로 길이를 출력한다.
난이도

어려움10점 중 8점

유형
그래프, BFS, 최단 경로, 분할 정복
정답자
아직 제출이 없습니다

문제

방향 그래프 GG가 주어진다. 모든 간선의 길이는 11이다. 다음 두 종류의 쿼리를 처리해야 한다.

  1. 간선 하나를 제거한다.
  2. 정점 11에서 정점 ii까지의 최단 경로 길이를 출력한다. 경로가 없으면 −1-1을 출력한다.

입력

첫째 줄에 정점의 수 nn, 간선의 수 mm, 쿼리의 수 qq가 주어진다. (1≤n≤10001 \le n \le 1000, 1≤m≤1000001 \le m \le 100000, 1≤q≤2000001 \le q \le 200000) 정점은 11부터 nn까지, 간선은 11부터 mm까지 번호가 매겨져 있다.

이어서 mm개의 줄에 간선 정보가 주어진다. ii번째 줄은 간선 ii를 나타내며, 두 정수 uu, vv (1≤u,v≤n1 \le u, v \le n, u≠vu \ne v)로 이루어진다. 이는 정점 uu에서 정점 vv로 향하는 방향 간선을 뜻한다.

이어서 qq개의 줄에 쿼리가 순서대로 주어진다. 각 쿼리는 문자 tt와 정수 pp로 주어진다. (t∈{U,E}t \in \{U, E\})

  • t=Ut = U이면 pp번 간선을 제거한다. 이미 제거된 간선을 다시 제거하는 경우는 없다. (1≤p≤m1 \le p \le m)
  • t=Et = E이면 정점 11에서 정점 pp까지의 최단 경로 길이를 출력한다. 경로가 없으면 −1-1을 출력한다. (2≤p≤n2 \le p \le n)

t=Et = E인 쿼리가 적어도 하나 있음이 보장된다.

출력

t=Et = E인 쿼리마다 정점 11에서 정점 pp까지의 최단 경로 길이를 한 줄에 하나씩, 쿼리가 주어진 순서대로 출력한다. 경로가 없으면 −1-1을 출력한다.

예제1

  1. 예제 1

    입력
    7 8 8
    1 2
    1 3
    1 5
    2 4
    3 1
    3 5
    4 5
    4 6
    E 7
    E 5
    U 7
    E 6
    E 5
    U 2
    E 5
    E 4
    
    예상 출력
    -1
    1
    3
    1
    1
    2