C/C++教程

PAT-A1037(C/C++代码解析)

本文主要是介绍PAT-A1037(C/C++代码解析),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1037 Magic Coupon (25 分)
在这里插入图片描述
在这里插入图片描述
注:贪心

#include <stdio.h>
#include <algorithm>
using namespace std;
const int maxn=888888;	
int a1[maxn]={0},a2[maxn]={0},b1[maxn]={0},b2[maxn]={0};
bool cmp (int a,int b)
{
	return a>b;
}

int main ()
{
    int sum=0,m,n;

	int i,a,b,numa1=0,numa2=0,numb1=0,numb2=0;
    scanf ("%d",&m);
    for (i=0;i<m;i++)
    {
    	scanf ("%d",&a);
    	if (a>=0)
    	a1[numa1++]=a;
    	else
    	a2[numa2++]=a;
	}
	scanf ("%d",&n);
	for (i=0;i<n;i++)
	{
		scanf ("%d",&b);
		if (b>=0)
		b1[numb1++]=b;
		else
		b2[numb2++]=b;
	}
	sort(a1,a1+maxn,cmp);
	sort(a2,a2+maxn);
	sort(b1,b1+maxn,cmp);
	sort(b2,b2+maxn);
	for (i=0;i<numa1&&i<numb1;i++)
	sum=sum+a1[i]*b1[i];
	for (i=0;i<numa2&&i<numb2;i++)
	sum=sum+a2[i]*b2[i];
	printf ("%d",sum);
    return 0;
}
这篇关于PAT-A1037(C/C++代码解析)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!