天苜仙影


私信TA

用户名:2714425647

访问量:2425

签 名:

QID:TG92ZTA2

等  级
排  名 278
经  验 5740
参赛次数 9
文章发表 31
年  龄 18
在职情况 学生
学  校 中国地质大学(武汉)
专  业

  自我简介:

学过C语言,欢迎大家加我QQ交流

解题思路:

1、先将田忌和齐王最快的马进行比较如果田忌的马更快则先赢一局

2、如果田忌最快的马比齐王慢,则比较两者最慢的马,如果田忌的快则派出最慢的马赢下一局。

3、如果1、2都不成立,则比较田忌最慢的马和齐王最快的马,并得出输赢结果。



注意事项:
本题题目没说清楚,本题需要再赢钱的数目为负数的时候输出零。这是一个大坑,我试了好久才试出来。
参考代码:

#include<stdio.h>  

void sorted(int *a,int n);  

int main(void)  

{  

    int i;  

    int a[10000]={0},b[10000]={0};  

    int n;  

    int amax,bmax;  

    int amin,bmin;  

    int ans=0;  

    scanf("%d",&n);  

    ans=0;  

    for(i=0;i<n;i++)  

    scanf("%d",&b[i]);  

    for(i=0;i<n;i++)  

    scanf("%d",&a[i]);  

    amax=bmax=n-1;  

    amin=bmin=0;  

    sorted(a,n);  

    sorted(b,n);  

    while(amin<=amax&&bmin<=bmax)  

    {  

        if(a[amax]<b[bmax])  

        {  

            amax--;bmax--;  

            ans++;  

        }  

        else if(a[amin]<b[bmin])  

        {  

            amin++;bmin++;  

            ans++;  

         }   

         else  

         {  

            if(a[amax]>b[bmin])  

            {  

             bmin++;amax--;  

            ans--;  

         }  

            else if(a[amax]==b[bmin])  

            {  

                bmin++;amax--;  

             }  

             else  

             {  

                bmin++;amax--;  

            ans++;  

             }  

           

         }  

    }  

    if(ans>=0)  

    printf("%d\n",200*ans);  

    else  

    printf("0\n");  

return 0;  

}  

void sorted(int *a,int n)  

{  

    int j,i;  

    int temp;  

    for(j=0;j<n;j++)  

    {  

        for(i=0;i<n-j-1;i++)  

        {  

            if(a[i]>a[i+1])  

            {  

                temp=a[i];a[i]=a[i+1];a[i+1]=temp;   

            }  

        }  

    }  

}  


 

0.0分

2 人评分

  评论区

  • «
  • »