7-21 魔法优惠券 (25 分)

在火星上有个魔法商店,提供魔法优惠券。每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值的商品,但是如果你在领取免费赠品的时候使用面值为正的优惠劵,则必须倒贴给商店K倍该商品价值的金额…… 但是不要紧,还有面值为负的优惠劵可以用!(真是神奇的火星)

例如,给定一组优惠劵,面值分别为1、2、4、-1;对应一组商品,价值为火星币M$7、6、-2、-3,其中负的价值表示该商品是免费赠品。我们可以将优惠劵3用在商品1上,得到M$28的回报;优惠劵2用在商品2上,得到M$12的回报;优惠劵4用在商品4上,得到M$3的回报。但是如果一不小心把优惠劵3用在商品4上,你必须倒贴给商店M$12。同样,当你一不小心把优惠劵4用在商品1上,你必须倒贴给商店M$7。

规定每张优惠券和每件商品都只能最多被使用一次,求你可以得到的最大回报。

输入格式:
输入有两行。第一行首先给出优惠劵的个数N,随后给出N个优惠劵的整数面值。第二行首先给出商品的个数M,随后给出M个商品的整数价值。N和M在[1, 10
​6
​​ ]之间,所有的数据大小不超过2
​30
​​ ,数字间以空格分隔。

输出格式:
输出可以得到的最大回报。

输入样例:
4 1 2 4 -1
4 7 6 -2 -3
输出样例:
43

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int yh[1000001];
int hx[1000001];
int comp(const void* num1,const void* num2)
{return *(int*)num2 - *(int*)num1;
}
int main()
{int N,M;int sum=0;int i,j;scanf("%d",&N);for(i=0;i<N;i++)scanf("%d",&yh[i]);scanf("%d",&M);for(i=0;i<M;i++)scanf("%d",&hx[i]);qsort(yh,N,sizeof(int),comp);qsort(hx,M,sizeof(int),comp);for(i=0,j=0; i<N&&j<M; i++,j++){if(yh[i]>0&&hx[j]>0)sum+=yh[i]*hx[j];}for(i=N-1,j=M-1; i>=0&&j>=0 ;i--,j--){if(yh[i]<0&&hx[j]<0)sum+=yh[i]*hx[j];}printf("%d\n",sum);return 0;
}

7-21 魔法优惠券 (25 分)相关推荐

  1. R7-8 魔法优惠券 (25 分)

    R7-8 魔法优惠券 (25 分) 在火星上有个魔法商店,提供魔法优惠券.每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值 ...

  2. PTA 7-39 魔法优惠券 (25 分)

    7-39 魔法优惠券 (25 分) 在火星上有个魔法商店,提供魔法优惠券.每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值 ...

  3. 7-39 魔法优惠券 (25 分)(思路加解释 用容器做的)加油兄弟们

    一:题目 在火星上有个魔法商店,提供魔法优惠券.每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值的商品,但是如果你在领取免 ...

  4. 基础实验 7-2.1 魔法优惠券(25 分)

    在火星上有个魔法商店,提供魔法优惠券.每个优惠劵上印有一个整数面值 K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值的商品,但是如果你在领取免费赠品的 ...

  5. 用JAVA实现魔法优惠券

    7-9 魔法优惠券 (25 分) 在火星上有个魔法商店,提供魔法优惠券.每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值的 ...

  6. 1121 Damn Single (25 分)

    1121 Damn Single (25 分) "Damn Single (单身狗)" is the Chinese nickname for someone who is bei ...

  7. [PTA]L2-001 紧急救援 (25 分)

    L2-001 紧急救援 (25 分) Description 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每 ...

  8. 7-26 Windows消息队列(25 分)

    7-26 Windows消息队列(25 分) 消息队列是 Windows 系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当 ...

  9. L2-002 链表去重 (25 分) 船新方法

    L2-002 链表去重 (25 分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在另一 ...

  10. C++学习之路 | PTA乙级—— 1050 螺旋矩阵 (25 分)(精简)

    1050 螺旋矩阵 (25 分) 本题要求将给定的 N 个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第 1 个格子开始,按顺时针螺旋 ...

最新文章

  1. 算法优化:rgb向yuv的转化最优算法,快得让你吃惊!
  2. Windows组策略让你的网络系统更强壮
  3. 一文带你领略JS中原型链的精妙设计!
  4. 【ELK Stack】ELK+KafKa开发集群环境搭建
  5. python查询模块所有类_python 小技巧(import模块、查询类继承关系、安装包)
  6. 抛体运动的小框架的源代码(rar)
  7. CentOS关闭图形界面(x window)
  8. 访问一下互联网中的IPV6主机
  9. 【Oracle经典】132个oracle热门精品资料——下载目录
  10. MR室内室外用户区分
  11. 插件//better-scroll(BScroll/滚动插件)使用方法及其在 vue 中使用
  12. 数据库增删改查的基本语法
  13. php 打印去掉页眉页脚,window.print打印 去掉页眉页脚及打印链接
  14. 机器人学领域的顶级期刊和会议
  15. 手动更新windows补丁
  16. 多自由度有阻尼matlab,有阻尼多自由度系统固有频率、阻尼的求取
  17. 在250美元5天城市
  18. 《MFQPPDCS》学习心得--TE---测试广度和深度
  19. FANUC机器人Config系统配置中各项参数的功能描述及设定
  20. 一定要做自己最内行的东西,一定要在自己本身的职位上来提升自己

热门文章

  1. linux运维、架构之路-Kubernetes集群部署TLS双向认证
  2. 移动端tap或touch类型事件的点透问题认识
  3. Linux系统中使用netcat命令的奇技淫巧
  4. 迅为iTOP-4412核心板调整电压
  5. VS2010 中 error 2732: 链接规范与的早期规范冲突 的解决
  6. python初体验(2)——面向对象篇
  7. 关于 it行业未来 的个人判断
  8. python获取某个模块文件的路径
  9. 颜宁追问4位男科学家:如何平衡事业和家庭?
  10. 学生时代,代码要从 0 写起,拒绝拷贝!