zoukankan      html  css  js  c++  java
  • HDU:Fighting for HDU

    Fighting for HDU

    Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 1198 Accepted Submission(s): 620

    Problem Description
    在上一回,我们让你猜测海东集团用地的形状,你猜对了吗?不管结果如何,都没关系,下面我继续向大家讲解海东集团的发展情况:
    在最 初的两年里,HDU发展非常迅速,综合各种ACM算法生成的老鼠药效果奇好,据说该药专对老鼠有效,如果被人误食了,没有任何副作用,甚至有传闻说还有健 胃的效果,不过这倒没有得到临床验证。所以,公司的销量逐年递增,利润也是节节攀升,作为股东之一的公主负责财务,最近半年,她实在辛苦,多次因为点钞票 造成双手抽筋而住院,现在在她面前你根本不要提到“钞票”二字,甚至“money”也不行,否则她立马双手抽筋,唉,可怜的公主…
    海东集团的发展令国人大为振奋,不过也引起了邻国同行业“东洋小苟株式会社”的嫉妒,眼看海东集团逐渐把他们原来的市场一一占领,心中自是不甘,于是派了n个人前来挑衅,提出要来一场比试真功夫的中日擂台赛,输的一方要自动退出老鼠药市场!
    他们提出的比赛规则是这样的:
    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
    
    
    这次的擂台赛,HDU能赢吗?欲知后事如何,且听下回分解——
     

    Author
    lcy
     

    Source
    ACM程序设计_期末考试(时间已定!!)
     

    Recommend
    lcy

    我的解题思路基于快速排序算法,先排序,再比较。

    #include<iostream>
    using namespace std;
    int a[100],b[100];
    void quicksort(int list[],int i,int j)//快速排序
    {
        if(i<j)
        {
            int f,l,sym;
            f=i;
            l=j;
            sym=list[i]; //基准
            while(i<j)
            {
                while(i<j&&list[j]>=sym)
                    j--;
                if(i<j)
                    list[i++]=list[j];
                while(i<j&&list[i]<sym)
                    i++;
                if(i<j)
                    list[j--]=list[i];
            }
            list[i]=sym;
            quicksort(list,f,i-1);
            quicksort(list,i+1,l);
        }
    }
    int main()
    {
        int n,i,a_score,b_score;
        while(cin>>n&&n)
        {
            a_score=0;
            b_score=0;
            for(i=0;i<n;i++)
                cin>>a[i];
            for(i=0;i<n;i++)
                cin>>b[i];
            quicksort(a,0,n-1);
            quicksort(b,0,n-1);
            for(i=0;i<n;i++)
            {
                if(a[i]>b[i])
                    a_score=a_score+2;
                else if(a[i]<b[i])
                    b_score=b_score+2;
                else
                {
                    a_score=a_score+1;
                    b_score=b_score+1;
                }        
            }
            cout<<a_score<<" vs "<<b_score<<endl;
        }
    }

  • 相关阅读:
    第二阶段个人冲刺总结01
    软件工程学习进度表13
    软件工程学习进度表12
    个人博客(09)
    个人博客(07)
    个人博客(08)
    poj1562 DFS入门
    poj3278 BFS入门
    数组单步运算
    十天冲刺
  • 原文地址:https://www.cnblogs.com/connorzx/p/2641902.html
Copyright © 2011-2022 走看看