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. 搭建PHP环境遇到的问题!!
  2. 别再写满屏的try-catch了,真丑,全局异常处理不会吗?
  3. cordova + vue cli构建跨平台应用
  4. jmeter 查看提取的参数
  5. Java集合篇:集合类介绍
  6. 内网嗅探自我保护用到的批处理
  7. 又一数据库高危漏洞爆出,数据安全如何有效保障?
  8. [Oracle] SQL*Loader 详细使用教程(3)- 控制文件
  9. 遇到一个php的错误,php初学者常见的几个错误及解决方法
  10. 高效而轻松的sed命令
  11. Android的异步多线程消息处理机制
  12. 喇叭正反相位测试音频_音频功放失真的四大要点及改善方法
  13. 用phpexcel导入导出文件
  14. 图像算法工程师需要这样
  15. MDF,LDF格式文件还原数据库
  16. 拖拽插件jquery.dad.js
  17. 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程根的MATLAB程序
  18. E销宝:dsp广告应该怎么投放?
  19. 网关是什么,一文带你快速入门腾讯技术工程
  20. 一个小程序入门matlab

热门文章

  1. 面向对象程序的设计模式
  2. UVa 11584 - Partitioning by Palindromes(线性DP + 预处理)
  3. mips32和x86下的大小端模式判定
  4. 手把手教你利用微软的Bot Framework,LUIS,QnA Maker做一个简单的对话机器人
  5. IOS:UI设计之UISegmentedControl相关基础
  6. 计算机网络第1章概述
  7. cocos2dx进阶学习之屏幕适配
  8. 关于 it行业未来 的个人判断
  9. 【ACL2021】三篇高质量方面级的情感分析方法解读
  10. 算法在岗一年的经验总结