Morning_X的苹果

TimeLimit:2000MS  MemoryLimit:256MB
64-bit integer IO format:%I64d
未提交 | 登录后收藏
Problem Description

上集说到Morning_X在各位聪明的ACMer帮助下成功的在数学课上装了一把13,Morning_X为了犒劳自己决定赏自己几个自己最喜欢吃的苹果。Morning_X每天至少会吃K个苹果,如果Morning_X有K苹果他就会吃掉K个,如果苹果数量不够K个,他就会把苹果全部吃掉;然而有一个很大的问题就是Morning_X的苹果居然是有保质期的,他必须在保质期之前把苹果吃掉,如果苹果过了保质期他就把苹果扔掉。

Morning_X非常讨厌把苹果扔掉,所以Morning_X每次吃苹果的时候他都会选择最靠近保质期的苹果去吃,各位聪明的ACMer应该都懂得这个道理,就是为了尽量减少苹果的损失。

现在主要的问题是Morning_X要去买新的苹果,现在Morning_X的冰箱里有n个苹果,每一个苹果的保质期都是已知的(苹果的保质期以天为单位),在商店里有m个苹果,苹果的保质期也是已知的。找到Morning_X能买的最大数量的苹果,保证Morning_X不用丢掉任何的苹果,并且Morning_X今天因为这个问题他决定吃掉K个苹果;

Input

第一行有三个数n,m,k(1 ≤ n, m ≤ 106, 1 ≤ k ≤ n + m) — 分别代表代表冰箱里苹果的数量,商店里苹果的数量,Morning_X每天要吃的苹果数量;

在第二行输入n个数f1, f2, ..., fn (0 ≤ fi ≤ 107) — 在冰箱里Morning_X的苹果的保质期(如果保质期是0则代表今天就要把苹果吃掉,如果是1则代表可以在明天吃掉);

第三行输入m个数s1, s2, ..., sm (0 ≤ si ≤ 107) —代表在商店里的苹果的保质期;


Output

如果没有办法吃Morning_X在冰箱里的苹果则输出-1

否则,第一行输出Morning_X所需要买的最大苹果数,以便于他不用丢掉苹果

第二行则输出苹果的编号(编号在输入时以确定,第一个为 1),编号不可以重复,但可以以任意顺序打印,如果有多种结果输出任意一种结果即可

SampleInput 1
3 6 2
1 0 1
2 0 2 0 0 2
SampleOutput 1
3
1 2 3
SampleInput 2
3 1 2
0 0 0
1
SampleOutput 2
-1
SampleInput 3
2 1 2
0 1
0
SampleOutput 3
1
1
Note 第一个样例:k=2,Morning_X在冰箱里三个苹果保质期分别为0,1,1;在商店里有3个苹果保质期分别为0和3和2,Morning_X可以买3个苹果,分别为保质期为0,2,2; 第二个样例:Morning_X拥有的苹果都会在今天到期,所以无论他是否购买额外的他都必须把牛奶扔掉; 第三个样例:在第三个例子Morning_X今天喝k = 2盒(一个是在在冰箱和一个从商店),剩下一个留到明天
Submit
题目统计信息详细
总AC数8
通过人数4
尝试人数7
总提交量46
AC率8.70%
AC该题后可以添加标签
贴完标签可以获得20ACB。
并且可以获得本题所有提交代码查看权限。
点击标题可以显示标签。
如果你还没认真思考过这题,请不要查看标签
如果您已经通过了该题,请务为该题贴上标签

T^T Online Judge

[BUG反馈] [FAQ] [闽ICP备17026590号-1]
当前版本:3.24 系统时间: