문제 보기 - 운세 보기 2 (JOI14_fortune_telling2)

시간 제한메모리 제한제출 횟수제출한 사람 수해결한 사람 수정답률
3000 ms256 MiB165839034588.46%

K 교수는 일본 IOI 위원회의 위원장입니다. 그는 운세 보기를 좋아합니다. 그는 항상 여러 종류의 운세를 보고 있습니다. 오늘, 그는 일본 IOI 국가대표들의 결과를 예측하기 위해 카드를 이용하여 운세를 보기로 했습니다.

카드의 양 면에는 정수가 쓰여 있으며 일치한다는 보장은 없습니다. 만약 여러분이 이 카드를 책상 위에 놓으면, 한 면의 정수는 볼 수 있으나, 다른 쪽의 정수는 가려져 보이지 않습니다.

운세 보기는 아래와 같은 과정으로 진행됩니다.

  • 처음, K 교수는 책상 위에 NN개의 카드를 놓습니다. 각 카드는 11 이상 NN 이하의 번호가 붙어 있습니다. ii번 카드의 한 쪽 면에는 정수 AiA_{i}가, 다른 쪽 면에는 정수 BiB_{i}가 쓰여 있습니다. 그는 각 카드 ii에 대해 AiA_{i}가 보이도록 카드를 놓습니다.
  • j=1,,Kj = 1, \cdots, K에 대해 그는 다음 연산을 차례대로 수행합니다: "만약 어떤 카드에서 보이는 면의 정수가 TjT_{j} 이하이면, 해당 카드를 뒤집는다."
  • 운세의 결과는 이 KK개의 연산이 끝난 후 탁자 위에 놓인 카드들의 보이는 면에 쓰여 있는 정수들의 합이 됩니다.

K 교수는 각 연산을 수행할 때마다 어떤 카드가 뒤집힐지 결정하는 것이 매우 지루해졌습니다. 그는 마침내 카드를 이용한 운세 보기를 포기하였습니다. 그는 단지 KK개의 연산이 모두 수행되었을 때 카드의 보이는 면에 쓰인 정수들의 합을 구하고자 합니다.

해야 할 일

카드에 쓰인 정수들과 연산의 정보가 주어질 때, 모든 연산이 끝난 뒤 카드의 보이는 면에 적힌 정수들의 합을 구하는 프로그램을 작성하세요.

입력

표준 입력에서 아래 데이터를 받으세요.

  • 첫 번째 줄에 두 개의 정수 NNKK가 공백을 사이로 두고 주어집니다. 이것은 NN개의 카드가 있으며 연산의 수는 KK임을 의미합니다.
  • 다음 NN개 줄에서 ii번째 줄 (1iN 1 \le i \le N)에는 두 개의 정수 AiA_{i}BiB_{i}가 공백을 사이로 두고 주어집니다. 이것은 ii번 카드의 양면에 쓰여 있는 정수가 AiA_{i}BiB_{i}라는 것입니다.
  • 다음 KK개 줄에서 jj번째 줄 (1jK1 \le j \le K)에는 정수 TjT_{j}가 주어집니다. 이것은, jj번째 연산에서, 카드의 보이는 면에 쓰인 숫자가 TjT_{j} 이하라면 이 카드는 뒤집어진다는 것을 의미합니다.

출력

표준 출력에, KK번의 연산을 모두 수행한 후 책상 위에 놓인 카드들의 보이는 면에 쓰인 정수들의 합을 출력합니다.

제약 조건

모든 입력 데이터는 아래 조건을 만족합니다.

  • 1N200,0001 \le N \le 200,000
  • 1K200,0001 \le K \le 200,000
  • 1Ai1,000,000,0001 \le A_{i} \le 1,000,000,000 (1iN1 \le i \le N)
  • 1Bi1,000,000,0001 \le B_{i} \le 1,000,000,000 (1iN1 \le i \le N)
  • 1Tj1,000,000,0001 \le T_{j} \le 1,000,000,000 (1jK1 \le j \le K)

서브태스크

서브태스크 1 [4점]

  • N1,000N \le 1,000
  • K1,000K \le 1,000

서브태스크 2 [31점]

  • N40,000N \le 40,000
  • K40,000K \le 40,000

서브태스크 3 [65점]

추가 제약 조건이 없습니다.

입출력 예제

입력

5 3
4 6
9 1
8 8
4 2
3 7
8
2
9

출력

18

4, 9, 8, 4, 3 -> 6, 9, 8, 2, 7 -> 6, 9, 8, 4, 7 -> 4, 1, 8, 2, 3