Tian Ji -- The Horse Racing(hdu1052)

此題鏈接單擊這裏

=================

題意:
田忌和齊王分別有n匹,給出每匹馬的速度。讓田忌和齊王的馬比賽,問田忌最多能贏多少錢(贏一場贏200,輸一場輸200,打平不分輸贏)。
思路:
先把田忌和齊王的馬分別排序,然後分三種情況:

1、齊王最快的馬比田忌最快的馬慢, 用田忌最快的馬贏齊王最快的馬。
2、齊王最快的馬比田忌最快的馬快,用田忌最慢的馬輸給齊王最快的馬。
3、齊王和田忌最快的馬一樣快,再分情況:

3.1、齊王最慢的馬比田忌最慢的馬慢,用田忌最慢的馬贏齊王最慢的馬。
3.2、齊王最慢的馬比田忌最慢的馬快,用田忌最慢的馬輸給齊王最快的馬。
3.3、齊王和田忌最慢的馬一樣快,再分:

如果田忌的最慢的馬比齊王最快的慢,用田忌最慢的馬輸給齊王最快的馬。
否則就打平。

        #include <iostream>
        #include <cstdio>
        #include <algorithm>
        using namespace std;
        int n;
        int ta[1010];
        int ka[1010];

        int main()
        {
            while(~scanf("%d",&n)&&n)
            {
                int sum=0;
                for(int i=0;i<n;i++)
                    scanf("%d",ta+i);
                for(int i=0;i<n;i++)
                    scanf("%d",ka+i);
                sort(ta,ta+n);
                sort(ka,ka+n);
                int tl=0,tr=n-1;
                int kl=0,kr=n-1;
                while(tl<=tr&&kl<=kr)
                {
                    if(ta[tr]>ka[kr])
                    {
                        sum+=200;
                        tr--;
                        kr--;
                    }
                    else if(ta[tr]<ka[kr])
                    {
                        sum-=200;
                        tl++;
                        kr--;
                    }
                    else
                    {
                        if(ta[tl]>ka[kl])
                        {
                            sum+=200;
                            tl++;
                            kl++;
                        }
                        else if(ta[tl]<ka[kl])
                        {
                            sum-=200;
                            tl++;
                            kr--;
                        }
                        else
                        {
                            if(ta[tl]<ka[kr])
                                sum-=200;
                            tl++;
                            kr--;
                        }
                    }
                }
                printf("%d\n",sum);
            }
            return 0;
        }

有問題聯繫企鵝791267032
郵箱地址….[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章