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

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

Black Friday

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

요약
재고를 지키면서 n명의 게이머에게 원하는 게임이나 게임기를 배정해 구매자 수를 최대로 만들고, 그 배정을 출력한다.
난이도

보통10점 중 7점

유형
그래프, 그리디, BFS, 구현
정답자
아직 제출이 없습니다

문제

nn명의 게이머들이 블랙 프라이데이를 맞아 매장에 몰려왔습니다! 매장에는 총 mm종류의 게임과 kk종류의 게임기가 존재합니다. 매장을 열기 전, ii번째 게임은 총 a_ia\_i개가 존재하며, ii번째 게임기는 b_ib\_i개가 존재합니다. jj번째 게이머는 c_jc\_j번 게임 혹은 d_jd\_j번 게임기중 하나를 구매하려고 합니다. 만약, 아무것도 구매하지 못한다면, 그 게이머는 매우 화가 나 매장을 혼란스럽게 만들 수 있습니다. 

당신은 이 매장의 매니저가 되었습니다. 당신은 각 게이머들에게 게임을 사게하거나, 게임기를 사게하거나, 돌려보내게 할 수 있습니다. 블랙 프라이데이에 게임 혹은 게임기를 구매하는 고객이 최대한 많아지도록 해야합니다.

입력

첫 번째 줄에 n,m,kn, m, k가 주어집니다. (1≤n≤2,000,000,1≤m,k≤2,0001 \leq n \leq 2,000,000, 1 \leq m,k \leq 2,000)

두 번째 줄에 a_1,a_2,…,a_ma\_1, a\_2, … , a\_m이 주어집니다. (1≤a_i≤1091 \leq a\_i \leq 10^9)

세 번째 줄에 b_1,b_2,…,b_kb\_1, b\_2, … , b\_k가 주어집니다. (1≤b_i≤1091 \leq b\_i \leq 10^9)

네 번째 줄부터 nn개의 줄에 걸쳐 c_j,d_jc\_j, d\_j가 주어집니다. (1≤c_j≤m,1≤d_j≤k1 \leq c\_j \leq m, 1\leq d\_j \leq k)

출력

첫 번째 줄에 게임 혹은 게임기를 구매한 고객수의 최댓값을 출력합니다.

두 번째 줄부터 nn개의 줄에 걸쳐 e_i,(e_i=0,1,2)e\_i \\, (e\_i = 0, 1, 2)를 출력해야합니다.

구매한 고객수가 최대인 경우에 대하여, ii번째 고객을 돌려보냈으면 e_i=0e\_i=0, 게임을 구매하게 하였으면 e_i=1e\_i=1, 게임기를 구매하게 하였으면 e_i=2e\_i=2입니다.

만약 구매한 고객수가 최대가 되는 경우가 여러 개 존재한다면, 아무거나 출력하면 됩니다.

예제1

  1. 예제 1

    입력
    4 2 2
    1 1
    1 1
    2 1
    2 1
    2 1
    2 2
    
    예상 출력
    3
    2
    1
    0
    2