7-21 魔法优惠券 (25 分)
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 分)相关推荐
- R7-8 魔法优惠券 (25 分)
R7-8 魔法优惠券 (25 分) 在火星上有个魔法商店,提供魔法优惠券.每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值 ...
- PTA 7-39 魔法优惠券 (25 分)
7-39 魔法优惠券 (25 分) 在火星上有个魔法商店,提供魔法优惠券.每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值 ...
- 7-39 魔法优惠券 (25 分)(思路加解释 用容器做的)加油兄弟们
一:题目 在火星上有个魔法商店,提供魔法优惠券.每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值的商品,但是如果你在领取免 ...
- 基础实验 7-2.1 魔法优惠券(25 分)
在火星上有个魔法商店,提供魔法优惠券.每个优惠劵上印有一个整数面值 K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值的商品,但是如果你在领取免费赠品的 ...
- 用JAVA实现魔法优惠券
7-9 魔法优惠券 (25 分) 在火星上有个魔法商店,提供魔法优惠券.每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值的 ...
- 1121 Damn Single (25 分)
1121 Damn Single (25 分) "Damn Single (单身狗)" is the Chinese nickname for someone who is bei ...
- [PTA]L2-001 紧急救援 (25 分)
L2-001 紧急救援 (25 分) Description 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每 ...
- 7-26 Windows消息队列(25 分)
7-26 Windows消息队列(25 分) 消息队列是 Windows 系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列当 ...
- L2-002 链表去重 (25 分) 船新方法
L2-002 链表去重 (25 分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在另一 ...
- C++学习之路 | PTA乙级—— 1050 螺旋矩阵 (25 分)(精简)
1050 螺旋矩阵 (25 分) 本题要求将给定的 N 个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第 1 个格子开始,按顺时针螺旋 ...
最新文章
- 搭建PHP环境遇到的问题!!
- 别再写满屏的try-catch了,真丑,全局异常处理不会吗?
- cordova + vue cli构建跨平台应用
- jmeter 查看提取的参数
- Java集合篇:集合类介绍
- 内网嗅探自我保护用到的批处理
- 又一数据库高危漏洞爆出,数据安全如何有效保障?
- [Oracle] SQL*Loader 详细使用教程(3)- 控制文件
- 遇到一个php的错误,php初学者常见的几个错误及解决方法
- 高效而轻松的sed命令
- Android的异步多线程消息处理机制
- 喇叭正反相位测试音频_音频功放失真的四大要点及改善方法
- 用phpexcel导入导出文件
- 图像算法工程师需要这样
- MDF,LDF格式文件还原数据库
- 拖拽插件jquery.dad.js
- 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程根的MATLAB程序
- E销宝:dsp广告应该怎么投放?
- 网关是什么,一文带你快速入门腾讯技术工程
- 一个小程序入门matlab