zoukankan      html  css  js  c++  java
  • 【PAT甲级】1037 Magic Coupon (25 分)

    题意:

    输入一个正整数N(<=1e5),接下来输入N个整数。再输入一个正整数M(<=1e5),接下来输入M个整数。每次可以从两组数中各取一个,求最大的两个数的乘积的和。

    AAAAAccepted code:

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 long long a[100007],b[100007];
     5 long long c[100007],d[100007];
     6 int cnta,cntb,cntc,cntd;
     7 int main(){
     8     int n,m;
     9     cin>>n;
    10     long long x;
    11     for(int i=1;i<=n;++i){
    12         cin>>x;
    13         if(x>0)
    14             a[++cnta]=x;
    15         else if(x<0)
    16             b[++cntb]=x;
    17     }
    18     cin>>m;
    19     for(int i=1;i<=m;++i){
    20         cin>>x;
    21         if(x>0)
    22             c[++cntc]=x;
    23         else if(x<0)
    24             d[++cntd]=x;
    25     }
    26     long long ans=0;
    27     sort(a+1,a+1+cnta);
    28     sort(b+1,b+1+cntb);
    29     sort(c+1,c+1+cntc);
    30     sort(d+1,d+1+cntd);
    31     for(int i=1;i<=min(cntb,cntd);++i)
    32         ans+=b[i]*d[i];
    33     for(int i=cnta,j=cntc;i&&j;--i,--j)
    34         ans+=a[i]*c[j];
    35     cout<<ans;
    36     return 0;
    37 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    6月15日学习日志
    6月14日学习日志
    6月13日学习日志
    6月12日学习日志
    给建民哥的意见
    6月10日学习日志
    6月9日学习日志
    6月8日学习日志
    梦断代码读书笔记3
    第二次冲刺(六)
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11551788.html
Copyright © 2011-2022 走看看