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; }