算法1
(暴力枚举) $O(n)$
补充(n//2-a)个1 (n//2+1-b)个y以得到最小值 使得sum<x
python3 代码
n,k,p,x,y = map(int, input().split())
arr = list(map(int, input().split()))
a = 0 #<y的个数, 应该是n//2个
b = 0 #>=y的个数, 应该是n//2+1个
for num in arr:
if num >= y:
b+=1
else:
a+=1
if a > n//2 or b > n//2 + 1 or sum(arr)+(n//2-a)+(n//2+1-b)*y > x:
print(-1)
else:
#由于总和有上界 所以补充的数尽量小:1和y
ans = [1]*(n//2-a)+[y]*(n//2+1-b)
print(" ".join(map(str, ans)))