V.I.P.
시간 제한1초메모리 제한1024 MB
활성 간선을 따라 가중치가 엄격하게 증가하는 경로의 개수를 세고, 각 질의마다 간선 상태를 뒤집은 뒤의 개수를 10^9+7로 나눈 나머지로 구합니다.
문제
정점이 개인 완전 그래프 와 활성화 정보 개, 정점의 가중치 개가 주어진다. 처음에는 모든 간선이 비활성화된 간선이다. 활성화 정보는 다음과 같이 주어지며, 개의 정보에서 같은 간선이 두 번 이상 활성화되는 경우는 없다.
- : 정점 와 를 잇는 간선을 활성화된 간선으로 만든다.
가중치가 증가하는 순서대로 방문하는 경로 중 비활성화된 간선을 지나지 않는 경로를 V.I.P.(Very Important Path)라고 한다. 아래 질의가 주어질 때마다 V.I.P.의 개수를 구한다.
- : 정점 와 를 잇는 간선의 활성화 여부를 반대로 바꾼다. 바뀐 그래프의 V.I.P. 개수를 출력한 뒤, 간선의 활성화 여부를 원래대로 되돌린다.
입력
첫 줄에 정점의 개수 , 활성화된 간선의 개수 , 질의의 개수 가 공백으로 구분되어 주어진다.
둘째 줄에 정점들의 가중치 이 공백으로 구분되어 주어진다. 는 번 정점의 가중치이다.
셋째 줄부터 번째 줄까지, 번째 줄에 번째 활성화된 간선의 두 끝점 가 공백으로 구분되어 한 줄씩 주어진다.
번째 줄부터 번째 줄까지, 번째 줄에 번째 질의 가 공백으로 구분되어 한 줄씩 주어진다.
출력
질의가 주어질 때마다 V.I.P.의 개수를 출력한다. 답이 아주 커질 수 있으므로 로 나눈 나머지를 출력한다.
힌트
그래프 이론에서 경로란 같은 정점을 최대 한 번 방문하는 인접한 정점들의 순서이다. 개의 정점으로 이루어진 나열 이 경로가 되려면, 일 때 이고, 에 대해 끝점이 각각 ()인 간선이 존재해야 한다.
증가 수열은 길이가 인 수열 에 대해 을 만족하는 수열이다.