PAT A1037. Magic Coupon (25)

移动端渗透测试框架MSF 移动端渗透测试框架Mobile-Security-Framework-MobSF-master,可以搭建完成后进行移动端渗透测试 立即下载

题目链接

The magic shop in Mars is offering some magic coupons. Each coupon has an integer N printed on it, meaning that when you use this coupon with a product, you may get N times the value of that product back! What is more, the shop also offers some bonus product for free. However, if you apply a coupon with a positive N to this bonus product, you will have to pay the shop N times the value of the bonus product... but hey, magically, they have some coupons with negative N's!

For example, given a set of coupons {1 2 4 -1}, and a set of product values {7 6 -2 -3} (in Mars dollars M$) where a negative value corresponds to a bonus product. You can apply coupon 3 (with N being 4) to product 1 (with value M$7) to get M$28 back; coupon 2 to product 2 to get M$12 back; and coupon 4 to product 4 to get M$3 back. On the other hand, if you apply coupon 3 to product 4, you will have to pay M$12 to the shop.

Each coupon and each product may be selected at most once. Your task is to get as much money back as possible.

Input Specification:

Each input file contains one test case. For each case, the first line contains the number of coupons NC, followed by a line with NC coupon integers. Then the next line contains the number of products NP, followed by a line with NP product values. Here 1<= NC, NP <= 105, and it is guaranteed that all the numbers will not exceed 230.

Output Specification:

For each test case, simply print in a line the maximum amount of money you can get back.

Sample Input:
4
1 2 4 -1
4
7 6 -2 -3
Sample Output:
43

AC代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int NC, NP;
const int maxn = 100010;
int coupons[maxn], values[maxn];
int chc[maxn], chv[maxn];
bool cmp(int a, int b) {
    return a > b;
}
int main() {
    scanf("%d", &NC);
    for (int i = 0; i < NC; i++) {
        scanf("%d", &coupons[i]);
    }
    scanf("%d", &NP);
    for (int i = 0; i < NP; i++) {
        scanf("%d", &values[i]);
    }
    sort(coupons, coupons + NC, cmp);
    sort(values, values + NP, cmp);
    int sum = 0, n, t,k, cn = 0, pn = 0;
    n = (NC < NP) ? NC : NP;
    for (int i = 0; i < n; i++) {
        if (chc[i] || chv[i])break;
        t = coupons[i];
        k = values[i];
        chc[i] = chv[i] = 1;
        if (k < 0 && t > 0 || k>0 && t < 0) {
            chc[i] = chv[i] = 0;
            t = coupons[NC - cn - 1];
            k = values[NP - pn - 1];
            cn++; pn++;
            if (t < 0 && k>0 || t > 0 && k < 0)break;
            chc[NC - cn - 1] = chv[NP - pn - 1] = 1;
            i--;
        }
        sum += t*k;
    }
    printf("%d", sum);
    return 0;
}


关于Arduino中的常用函数 一、I/O函数 二、时间函数 三、数学函数 abs 返回其参数的无符号值 【abs(12)返回12,abs(-12)也返回12】 constrain 限制一个数字以阻止它超出范围。第一个参数是被限制的数字,第二个参数是范围区间的开始,第三个参数是允许的数字范围区间的结尾。 【constrain(8,1,10)返回8,constrain(11,1,10)返回10,constrain(0,1,10)返回1】 map 将一个范围内的数字映射到另一个范围。第一个参数是要映射到数字,第二个和第三个参数是from范围( 阅读详情

相关推荐

高效低功耗设计:PMOS电子开关在墨水屏与ADC采样电路中的创新应用

本文深入探讨了PMOS电子开关在低功耗设计中的创新应用,特别是在墨水屏和ADC采样电路中的关键作用。通过详细分析PMOS的导通机制和近乎零静态功耗特性,展示了其在待机低功耗场景下的显著优势,并提供了实用的电路设计技巧和元器件选型建议,帮助工程师实现极致的功耗优化。

weixin_29193359的博客 162

Magic Coupon (25)

Magic Coupon (25) 题目描述 The magic shop in Mars is offering some magic coupons.  Each coupon has an integer N printed on it, meaning that when you use this coupon with a product, you may get N tim

s136424的博客 2万+

Minitab田口设计实战:如何用正交试验优化遗传算法参数(附完整操作步骤)

本文详细介绍了如何利用Minitab田口设计进行遗传算法参数优化,通过正交试验方法显著提升效率。文章涵盖实验设计、Minitab操作步骤、结果分析及高级技巧,帮助工程师快速掌握这一工业级优化技术,实现算法性能的显著提升。

wind6的博客 866

android 动画使用机制2

Andriod 的Animations可以从形式上分为两大类,分别是 Tweened Animations 和Frame-By-Frame Animations。Tweened Animations可以理解为补间动画,也就是某一张图或者其他对象,进行旋转、变形等动画;而Frame-By-Frame Animations是多张图片或对象,进行一帧一帧的变化。简单而也,前者是本身改变的动画,后者是与其

zhiweiusetc的专栏 871

【Cadence】stb仿真和ac仿真——以一个简单的全差分反相放大器仿真为例

最近在补一些仿真方法学的问题,以及一些一直以来都有点模糊的概念,简单记录一下。搭建一个以两个CMOS反相器构成的全差分放大器(28nm工艺,PMOS和NMOS尺寸一致)激励的设置方便共模和差模仿真用同一个TB(这里有一个问题:这个放大器需要在开环下仿真还是闭环下?哪些放大器应用在开环,哪些闭环?这种应用场景不同会导致需要仿真得到开环还是闭环增益,或者环路增益?(我知道放大器在设计的时候肯定都是闭环应用的多,但是什么时候没必要闭环应用?光验证ac和stb仿真是否一样的话有必要有回路吗?

weixin_44951108的博客 5万+

信贷风控实战指南:Vintage分析表从数据建模到风险洞察

本文是一份信贷风控实战指南,详细阐述了Vintage分析从数据建模到风险洞察的全流程。文章深入解析了Vintage分析作为信贷资产“体检报告”的核心价值,并提供了从借据表与还款计划表设计、账龄计算、逾期口径判定到风险暴露计算与最终可视化透视的完整SQL实现方案,旨在帮助风控从业者构建精准的风险监控体系。

nft7creator的博客 321

moosefs安装

在服务器较多,且服务器上硬盘剩余空间较大的情况下。为了更充分的利用资源,我们可以使用分布式的文件系统将这些空间整合起来。而在众多的分布的文件系统中,笔者经过反正的比较和尝试最终选择了moosefs(以下简称mfs). 为什么选择mfs而不是其它的什么系统呢?     1.安装简单方便(易用性)。这点是其它系统所不及的。你只需要像安装普通的服务那样安装mfs,不需要修改内核!     2.扩容

liaoyuanzi的专栏 2万+

本地化搭建DeepSeek+RAGFlow,构建个人知识库

本地化搭建DeepSeek+RAGFlow,构建个人知识库。至少32G以上内存、500G以上空余磁盘空间。

gogospecter的专栏 7430

Moosefs介绍及安装

本文主要关于moosefs的介绍及各节安装配置一、mfs介绍1.角色(1)管理服务器managing server (master):管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复,多节点拷贝。(2)元数据日志服务器Metalogger server(Metalogger):元数据日志服务器: 负责备份master服务器的变化日志文件,文件类型为...

weixin_33701251的博客 298

24、虚拟地理信息系统:技术与应用的全面解析

本文全面解析了虚拟地理信息系统(虚拟GIS)的技术架构与应用前景。文章从地理空间数据的增长出发,探讨了虚拟GIS在地形、建筑、天气等多维度数据的交互式可视化技术,重点介绍了全球层次结构、多分辨率模型、缓存分页机制及交互导航方法。系统已应用于天气分析、城市规划、应急响应等领域,并展望了未来在数据处理、模拟操作、移动可视化及智能城市、文化遗产保护等方向的发展路径与技术挑战。

v4w5x6的博客 89

【Simulink教程案例19】基于simulink的扩频通信系统建模与仿真

扩频是一种应用于数字调制信号的调制技术,可以提高传输信号的带宽。扩频通信具有抗干扰能力强,扩频增益越大,抗干扰能力越强。而且扩频通信具有很强的保密性,扩频后信号近似白噪声,功率谱密度也很低。扩频通信可用于多址通信。扩频调制有如下三个特点:① 扩频后信号的带宽远大于信号所需的带宽② 使用扩频码进行扩频调制,扩频码与信号中的数据相互独立③ 在接收端,通过将接收信号与扩频码的同步副本进行相关,实现解扩。

FPGA/MATLAB学习教程/源码/项目合作开发 2197

PAT A1037 Magic Coupon (25)

PTA跳转:原题链接 题目大意:给出两个数组,分别给出1个元素进行相乘,每个元素只能使用1次。求相乘之和的最大值。 解题思路:因为2个正数或2个负数相乘才能得到正数,先对两个数组进行递减排序,指针分别指向首元素,如果都为正数,相乘,指针同时后移,直到出现负数元素。同理,对两个数组进行递增排序,指针分别指向首元素,如果都为负数,相乘,指针同时后移,直到出现正数元素。 对每个数组进行2次排序的好处是使用1个指针即可。也可以不进行递增排序,多设置一个指针,在递减排序扫描时出现负数元素的时候,分别将指针指向数组的最

koori_145的博客 231

【Kubernetes】Kubernetes 安全沙箱深度对比:gVisor vs Kata Containers

Kubernetes安全沙箱深度对比:gVisor和Kata Containers在架构、性能与安全性方面各有特点。gVisor通过用户态内核(Sentry)实现软件隔离,启动快(毫秒级)但CPU开销大(20-30%),适合Web服务等场景。Kata Containers采用轻量级虚拟机提供硬件级隔离,启动较慢(1-2秒)但兼容性更好,适合金融等高安全需求。测试显示gVisor在动态请求下性能下降33%,而Kata性能接近原生。建议根据场景选择:多租户/快速启动用gVisor,敏感数据/极致安全用Kata,

九师兄 178

PAT A1037 Magic Coupon (25 分)

1037 Magic Coupon (25 分) The magic shop in Mars is offering some magic coupons. Each coupon has an integer N printed on it, meaning that when you use this coupon with a product, you may get N times t...

小魚兒 111

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

PAT_A 1037. Magic Coupon (25)

1037. Magic Coupon (25)自然排序后首尾各遍历一次相乘求和一次即可。

longtails的博客 607

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

PAT A 甲级 1037 Magic Coupon (25分)

1037 Magic Coupon (25分) 吐槽 这题目是真的难懂。读题时间和编程时间可能是一个级别的。 逻辑 先搞清楚这题目要干啥: 有一堆coupon,是一堆数,有正有负。 有一堆product,是一堆数,有正有负。 两堆里面各拿出一个,数字乘一乘,就是你的所得。 重复各拿一个相乘的操作,直到你主动停止(即:可以不用光所有数)。 问怎么拿得到的所得最多,并求这个最大所得。 这里需要一个简单...

虚境的博客 212

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

PAT A1037 Magic Coupon (25 分) 贪心

题目大意:给出两个序列,每个序列中有正数有负数,每次从两个序列中各选一个数相乘,求出可以得到的最大的乘积和。每个序列中的数只能被选一次。 贪心算法,首先对两个序列,分别区分开的正数和负数,并对这四个序列进行排序,每次取两个负数序列中最小的相乘,负数取完后再取两个正数序列中最大的相乘。结果累加。 AC代码: #include <vector> #include &...

HackingGate的博客 209

PAT A1037 Magic Coupon (25分)

PAT A1037 Magic Coupon 25分原题题目分析代码运行结果 原题 The magic shop in Mars is offering some magic coupons. Each coupon has an integer N printed on it, meaning that when you use this coupon with a product, you may get N times the value of that product back! What is m

kyln1039的博客 163

PAT-A 1037 Magic Coupon (25 分)

思路:应该让符号相同的绝对值分别为最大的数字相乘。比如1 2 4 -1和7 6 -2 -3 先将所有数按照从小到大排序为 -1 1 2 4 -3 -2 6 7 这个时候让-1和-3相乘,得到3,发现没有一一对应的负数了再将整数部分按照从大到小排序(负数部分没有必要动): -1 4 2 1 -3 -2 76 这个时候让4和7相乘得28,2和6相乘得12,3 + 28 + 12=43

qq_38127801的博客 155

PAT A 1037 Magic Coupon (25 分)

思路 对coupon和product降序排序; 进行从首到尾对两正数,及从尾到头对两负数求乘积,再累加;

Siumai's Blog 161
上一篇: PAT A1033. To Fill or Not to Fill (25)
下一篇: PAT A1067. Sort with Swap(0,*) (25)
DemonInside
博客等级 码龄10年 1粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值