Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2), problem: (B) T-shirt buying Solution In C/C++

from heapq import heappush, heappop

n = input()
p = map(int, raw_input().split())
a = map(int, raw_input().split())
b = map(int, raw_input().split())
m = input()
c = map(int, raw_input().split())
colors = {}
for i in range(1, 4): colors[i] = []
for i in range(n):
heappush(colors[a[i]], (p[i], i))
if a[i] != b[i]: heappush(colors[b[i]], (p[i], i))
available = [1] * n
for i in range(m):
while True:
if len(colors[c[i]]) == 0:
print -1,
break
else:
price, index = heappop(colors[c[i]])
if available[index]:
available[index] = 0
print price,
break

(Visited 9 times, 1 visits today)

About the Author:

Leave A Comment