首页 > 代码库 > B - 这是测试你会不会排序

B - 这是测试你会不会排序

2017-07-14 22:44:11

  • writer:pprp
  • 题目:
  • 他们提出的比赛规则是这样的: 
    1.  每方派出n个人参赛; 
    2.  出赛的顺序必须是从弱到强(主要担心中国人擅长的田忌赛马); 
    3.  每赢一场,得两分,打平得一分,否则得0分。 
    东洋小苟果然够黑,不过他们万万没有想到,HDU可是卧虎藏龙,不仅有动若脱兔的Linle,还有力大如牛的伪**,更有下沙健美先生HeYing以及因为双手抽筋而练成鹰爪功的月亮公主,估计小苟他们也占不到什么便宜。 
    假设每个队员的能力用一个整数来表示,你能告诉我最终的结果吗? 
    Input输入包含多组测试数据,每组数据占3行,首先一行是一个整数n(n<100),表示每方上场队员的人数,接着的二行每行包含n个整数,分别依次表示中日两方人员的能力值,n为0的时候结束输入。 
    Output对于每个测试实例,请输出比赛的结果,结果的格式如样例所示(数字和vs之间有且仅有一个空格),其中,HDU的比分在前。 
    每个实例的输出占一行。 
    Sample Input
    3
    5 2 6
    1 3 4
    0
    Sample Output
    6 vs 0
  • #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    int main()
    {
        int num;
    
        while(cin >> num&&num!=0)
        {
            int as = 0;
            int bs = 0;
            int *a = new int[num];
            int *b = new int[num];
    
            for(int i = 0 ; i < num ; i++)
            {
                cin >> a[i];
            }
            for(int i = 0 ; i < num ; i++)
            {
                cin >> b[i];
            }
            sort(a,a+num);
            sort(b,b+num);
    
            for(int i = 0 ; i < num ; i++)
            {
                  if(a[i]>b[i])
                  {
                      as+=2;  
                  }
                  else if(a[i]==b[i])
                  {
                       as+=1;
                       bs+=1; 
                  }
                  else if(a[i]<b[i])
                  {
                         bs+=2;
                  }
            }
            cout << as <<" vs "<<bs<<endl;
            delete a;
            delete b;
    
        }
    
    
        return 0;
    }

     

B - 这是测试你会不会排序