注册 登录
编程论坛 C++ Builder

杭电 1052田忌赛马 第一次

缪翔7 发布于 2011-07-14 00:41, 673 次点击
第一次请教 麻烦高手帮解答一下
新手上路
我觉得对的 就是通过不了那个系统

#include <iostream>
using namespace std;
void sort(int a[],int n)
{
    int i,j,num;
    for (i=0;i<n;i++)
        for (j=0;j<n-i;j++)
        {
            if (a[j]<a[j+1])
            {
                num=a[j];
                a[j]=a[j+1];
                a[j+1]=num;
            }
        }
}
int main()
{
    int n,i,j;
    while (cin>>n)
    {
        int count1=0,count2=0;
        if (n==0) return 0;
        int *a,*b;
        a=new int[n];
        b=new int[n+1];
        for (i=0;i<n;i++)
            cin>>a[i];
        for (i=0;i<n;i++)
            cin>>b[i];
            b[n]=-1;
        sort(a,n);
        sort(b,n);
        i=0;j=0;
        
        while(b[j]!=-1)
        {
            if (a[i]>b[j])
            {
            i++;
            j++;
            count1=count1+200;
            }
            else
            {
                j++;
                if (a[i]!=b[j-1])
                    count2=count2+200;
            }
        }
        cout<<count1-count2<<endl;
    }
    return 0;
}
3 回复
#2
缪翔72011-07-14 15:14
为什么 没有人帮我解答啊
#3
xuke100we2011-09-06 23:56
百度hdu 1052,,就有你的答案。
#4
维海2011-10-17 15:16
这样的话,田忌似乎输定了
排好序之后,在齐王出第一匹马时,判断可以赢不,可以赢就赢,不可以,就用最烂的马和他赛,相当于每次都是从田忌马序列的两端取马,如能赢就一定是在前面取的,反之在后面

[ 本帖最后由 维海 于 2011-10-17 16:07 编辑 ]
1