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