「BZOJ3721」PA2014 Final Bazarek

2014年11月9日2,6970

Description

有n件商品,选出其中的k个,要求它们的总价为奇数,求最大可能的总价。

Input

第一行一个整数n(1<=n<=1000000),表示商品数量。
接下来一行有n个整数,表示每件商品的价格,范围在[1,10^9]。
接下来一行有一个整数m(1<=m<=1000000),表示询问数量。
接下来m行,每行一个整数k[i](1<=k[i]<=n)。

Output

对于每个询问,输出一行表示保证奇数的情况下最大的总价。若无法满足要求,输出-1。

Sample Input

4
4 2 1 3
3
2
3
4

Sample Output

7
9
-1

题解

贪心

显然排序后取最大的K个。。。但如果这K个和为偶数,就考虑将其中的一个偶数换奇数/奇数换偶数,那么只要维护下前i个中的奇数最小值和偶数最小值,后i个中奇数最大值和偶数最大值就能O1回答询问了

 

avatar
  Subscribe  
提醒