当前位置:网站首页>1037 Magic Coupon
1037 Magic Coupon
2022-07-02 05:33:00 【Brosto_Cloud】
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在输入的时候就把两组数据中的正负数分开存放,正数从大到小排序,负数从小到大排序,正数和正数相乘,负数和负数相乘,再加起来即可。
#include <iostream>
#include <algorithm>
using namespace std;
long long n1, n2, ans, ax, bx, ay, by; //x代表正数个数,y代表负数个数
long long a[100010], b[100010], a1[100010], b1[100010];
int main() {
cin >> n1;
long long t;
for (int i = 1; i <= n1; i++) {
cin >> t;
if (t > 0) {
a[++ax] = t;
}
if (t < 0) {
a1[++ay] = t;
}
}
cin >> n2;
for (int i = 1; i <= n2; i++) {
cin >> t;
if (t > 0) {
b[++bx] = t;
}
if (t < 0) {
b1[++by] = t;
}
}
sort(a + 1, a + 1 + ax, greater<int>());
sort(b + 1, b + 1 + bx, greater<int>());
sort(a1 + 1, a1 + 1 + ay);
sort(b1 + 1, b1 + 1 + by);
int i = 1, j = 1;
while (i <= ax && j <= bx) {
ans += a[i] * b[j];
i++;
j++;
}
i = 1, j = 1;
while (i <= ay && j <= by) {
ans += a1[i] * b1[j];
i++;
j++;
}
cout << ans;
return 0;
}
边栏推荐
- 【pyinstaller】_ get_ sysconfigdata_ name() missing 1 required positional argument: ‘check_ exists‘
- "Original, excellent and vulgar" in operation and maintenance work
- Get the details of the next largest number
- Operator details
- Fabric. JS activation input box
- idea开发工具常用的插件合集汇总
- Nodejs (03) -- custom module
- Opencv LBP features
- Fabric. JS basic brush
- Mysql基础---查询(1天学会mysql基础)
猜你喜欢

kmp思想及模板代码

2022-2-15 learning xiangniuke project - Section 8 check login status

摆正元素(带过渡动画)

2022-2-14 learning xiangniuke project - Section 6 displays login information

Nodejs (02) - built in module

Gee: create a new feature and set corresponding attributes

Balsamiq wireframes free installation

Fabric. JS right click menu

Fabric. JS gradient

操作符详解
随机推荐
Fabric.js 基础笔刷
Importation de studio visuel
Common protocols and download paths of NR
Reflection of the soul of the frame (important knowledge)
Gee data set: export the distribution and installed capacity of hydropower stations in the country to CSV table
idea开发工具常用的插件合集汇总
Sliding window on the learning road
Nodejs (03) -- custom module
brew install * 失败,解决方法
Gee: find the spatial distribution and corresponding time of the "greenest" in the Yellow River Basin in 2020 [pixel by pixel analysis]
Fabric.js 更换图片的3种方法(包括更换分组内的图片,以及存在缓存的情况)
Global and Chinese market of insulin pens 2022-2028: Research Report on technology, participants, trends, market size and share
Typora installation (no need to enter serial number)
Applet jumps to official account
Fabric.js 渐变
如何写出好代码 — 防御式编程指南
Global and Chinese markets of semiconductor laser therapeutics 2022-2028: Research Report on technology, participants, trends, market size and share
Fabric. JS iText set italics manually
摆正元素(带过渡动画)
I want to understand the swift code before I learn it. I understand it