PAT 1037

news/2024/11/16 23:38:52/

题目

题目复杂难懂,翻译过来其实题目的目的就是让最大正数和最大正数相乘,最小负数和最小负数相乘,正负不能相乘,每个数都只能被乘一次。

代码和思路

  1. 题目说数字的大小是小于2的32次方的,小于int类型,所以就用int定义就好
  2. 分别读入两个数组后排序
  3. 然后循环找到每个数组第一个负数出现的位置
  4. 正数从前往后乘,负数从后往前乘,负数位置就是循环跳出变量
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 100010;int coupon[maxn], product[maxn];bool cmp(int a, int b) {return a > b;
}int main() {int nc, np;scanf("%d", &nc);for (int i = 0; i < nc; i++) {scanf("%d", &coupon[i]);}scanf("%d", &np);for (int i = 0; i < np; i++) {scanf("%d", &product[i]);}sort(coupon, coupon + nc, cmp);sort(product, product + np, cmp);int negflagc = -1, negflagp = -1;for (int i = 0; i < nc; i++) {if (coupon[i] < 0) {negflagc = i;break;}}if (negflagc == -1) { negflagc = nc; }for (int i = 0; i < np; i++) {if (product[i] < 0) {negflagp = i;break;}}if (negflagp == -1) { negflagp = np; }int sum = 0;int c = 0, p = 0;while (c < negflagc && p < negflagp) {sum += coupon[c] * product[p];c++;p++;}c = nc - 1;p = np - 1;while (c >= negflagc && p >= negflagp) {sum += coupon[c] * product[p];c--;p--;}printf("%d", sum);
}

题目看懂以后是非常简单的,主要就是题目的描述有点长难。


http://www.ppmy.cn/news/195372.html

相关文章

B1037

在霍格沃茨找零钱 (20分) 总结&#xff1a; 计算从低位到高位&#xff0c;低位可以向高位借位。输出从高位到低位。命名空间std里有swap(a,b)函数&#xff0c;需要头文件#include <iostream>和using namespace std; 代码&#xff1a; #include <cstdio>void Swa…

1037 Magic Coupon

题目 题意&#xff1a;给定两组序列&#xff0c;分别在其中选出某些数使得乘积最大。 tip&#xff1a;贪心 #include<iostream> #include<algorithm> using namespace std; bool cmp(int a,int b) {return a>b; } int main() {int n;cin>>n;int coupo…

PTA乙级1037

1037 如果你是哈利波特迷&#xff0c;你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的&#xff1a;“十七个银西可(Sickle)兑一个加隆(Galleon)&#xff0c;二十九个纳特(Knut)兑一个西可&#xff0c;很容易。”现在&#xff0c;给定哈利应付的价钱 P 和他实付的…

1037

#include<stdio.h>int main(){int a,b,c;scanf("%d %d",&a,&b);ca%b;printf("%d",c);}

二级指针骚操作实现链表虚拟头节点

重点是不用像其他文章里那样&#xff0c;用一个普通节点成员变量当头节点&#xff0c;节省一点空间占用&#xff0c;反正我觉得有点骚。就不详细交代技术背景了&#xff0c;简而言之&#xff0c;就是链表中第一个节点前没有节点了&#xff0c;只有一个指向它的指针&#xff0c;…

HP LaserJet Pro MFP M128fn 无法打印

HP LaserJet Pro MFP M128fn 一体机&#xff0c;安装驱动后&#xff08;网络连线方式&#xff09;。部分电脑驱动安装完&#xff0c;打印没有反应&#xff0c;亦没有任何报错&#xff08;打印任务一闪而过&#xff09;。 解决方法&#xff1a;使用 hp m1218 驱动。 转载于:http…

[工具]Ubuntu安装HP MFP m128fn型号的打印机

依次执行如下的命令&#xff0c;执行过程中注意查看提示。 wget https://excellmedia.dl.sourceforge.net/project/hplip/hplip/3.17.10/hplip-3.17.10.run sudo sh hplip-3.17.10.run sudo hp-setup

winxp连接不到HP LaserJet Pro M128fp MFP解决方法

HP LaserJet Pro M128fp MFP驱动下载地址&#xff1a; https://support.hp.com/cn-zh/drivers/selfservice/hp-laserjet-pro-mfp-m128-series/5396667/model/5303432 下载驱动后直接安装会报错&#xff0c;win xp需要先安装NET3.5&#xff0c;再安装驱动程序。 NET 3.5下载地…