解题思路:

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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论