luogu#P6851. onu

onu

题目背景

小 C 和小 D 是好朋友。他们正在尝试一种全新的牌类游戏——onu!

题目描述

为了增加一点趣味性,小 C 和小 D 每人买了 vv 颗糖用来当作筹码。

onu 的规则是这样的:

游戏共 mm 轮,由两人进行,一位先手,一位后手。在这里,我们默认先手的玩家是小 C,而后手的玩家是小 D。

在最开始时,小 C 会得到 mm 张牌,每张牌有其对应的花色、点数。而小 D 会得到 nn 张牌。

每一轮开始时,小 C 会打出一张牌,放在桌面上展示给小 D 看。

在此之后,小 D 需要跟牌,即打出他手上的一张牌,且该张牌必须满足其花色与小 C 打出的牌相同。若小 D 没有满足条件的牌或者是他选择弃权(也就是说,可以选择当前回合是否打出牌),弃掉小 C 打出的牌后跳过该轮,视为小 D 败。

在小 D 打出满足要求的牌后,进行一次拼点,也即比较小 C 和小 D 打出的牌的点数:如果小 D 出的牌的点数大于等于小 C 的牌的点数,则小 D 胜,否则小 D 败。容易知道,这样不会出现平局的情况。

最后,胜的一方会从败的一方拿走 cc 颗糖,且双方均需弃掉打出的牌,并会再从商店买等于自己打出的牌的点数颗糖。例如小 C 和小 D 打的点数分别是 3355,那么小 C 会去购买 33 颗糖,小 D 购买 55 颗。

为了不破坏两人间的友好关系,不出现一方被另一方完全赢光的情况,他们在最开始买糖时,已经约定好了 vc×mv \ge c \times m

现在,小 D 通过一些神秘手段,知道了小 C 在这 mm 轮中打出的所有牌,他希望在 mm 轮游戏进行之后,让自己的糖数尽量多。你可以帮他找到最优的方案吗?

输入格式

第一行四个正整数表示 n,m,c,vn, m, c, v,含义如题目描述所示。

接下来 nn 行中,第 ii 行每行两个正整数 ai,bia _i, b _i,表示了小 D 一开始拥有的第 ii 张牌的花色、点数。

接下来 mm 行中,第 ii 行每行两个正整数 ai,bia _i, b _i,表示小 C 第 ii 轮会打出的牌的花色、点数。

注意可能会有花色点数均相同的牌。

输出格式

输出共 m+1m + 1 行。

第一行输出一个正整数,表示在最优方案中,小 D 最多能剩余的糖数。

接下来 mm 行中,第 ii 行输出一行一个正整数,表示小 D 在第 ii 轮打出的牌的编号。如果小 D 跳过了该轮,输出 -1

本题采用 Special Judge,如果有多种最优方案,输出任意一个即可。

3 3 1 4
3 5
1 2
2 6
1 6
3 5
1 4
10
2
1
-1
1 2 1 5
1 5
1 8
1 4
10
-1
1

提示

「样例 1 解释」

(a,b)(a, b) 来表示一张花色为 aa,点数为 bb 的牌。

一开始,小 D 有 44 颗糖。小 C 会依次打出 (1,6),(3,5),(1,4)(1, 6), (3, 5), (1, 4) 三张牌。

一种最优的方案是:

第一轮,小 C 打出第一张牌 (1,6)(1, 6),小 D 打出第二张牌 (1,2)(1, 2),小 D 负,被拿走 11 颗糖,购买 22 颗糖。此时其有 55 颗糖。

第二轮,小 C 打出 (3,5)(3, 5),小 D 打出 (3,5)(3, 5),由于点数大于等于小 C 的牌,所以小 D 胜,拿到 11 颗糖,购买 55 颗糖。此时其有 1111 颗糖。

第三轮,小 C 打出 (1,4)(1, 4)。由于小 D 在第一轮已经打出过第二张牌 (1,2)(1, 2) 了,所以没有牌能打,输出 1-1 并判小 D 负,被拿走 11 颗糖,此时其有 1010 颗糖。

「样例 2 解释」

最开始有 55 颗糖。

第一轮时小 C 打出 (1,8)(1, 8),小 D 选择弃权,败,于是剩下了 51=45 - 1 = 4 颗糖;

第二轮时小 C 打出 (1,4)(1, 4),小 D 打出 (1,5)(1, 5),胜,得到 5+15 + 1 颗糖,故最终小 D 有 1010 颗糖。


「Special Judge 说明」

请认真阅读输出格式

每个测试点仅有 00 分和满分的区别。如果你的输出出现了以下情况,将会被判为 00 分:

  • 输出格式不符,如没有正确换行,输出了一些奇奇怪怪的字符等。
  • 输出的最优糖果数与标准答案不同。
  • 打牌的方案不合法,即不能打出已经弃掉的牌,也不能打出花色与小 C 打出的牌不相同的牌。
  • 按照你所输出的方案打完牌后,小 D 的剩余糖果数与你第一行所输出的数字不同。

「数据范围」

本题采用捆绑测试

  • Subtask 1(10 points):n,m5n, m \le 5
  • Subtask 2(30 points):n,m1000n, m \le 1000
  • Subtask 3(20 points):c=0c = 0
  • Subtask 4(20 points):ai=1a _i = 1
  • Subtask 5(20 points):无特殊限制。

所有数据保证 1n,m,ai,bi1051 \le n, m, a _i, b _i\le 10 ^50c1050 \le c \le 10 ^5c×mv1012c \times m \le v \le 10 ^{12}