美文网首页
2020-05-25 龟兔赛跑预测

2020-05-25 龟兔赛跑预测

作者: JalorOo | 来源:发表于2020-05-25 18:03 被阅读0次
    #include <iostream>
    #include <cstdio>
    using namespace std;
    
    //于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。
    
    //输入描述:
    //  输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2<=100;t<=300;s<=10;l<=10000且为v1,v2的公倍数)
    //输入样例:
    //10 5 5 2 20
    //5 1 5 3 20
    
    //输出描述:
    //  输出包含两行,第一行输出比赛结果——一个大写字母“T”或“R”或“D”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。
    //  第二行输出一个正整数,表示获胜者(或者双方同时)到达终点所耗费的时间(秒数)。
    //输出样例:
    //D
    //4
    struct M{
        int v;
        int l;
    };
    
    
    int main(){
        int v1,v2,t,s,l;//v1兔子
        scanf("%d%d%d%d%d",&v1,&v2,&t,&s,&l);
        M m1;
        m1.v = v1;
        m1.l = 0;
        M m2;
        m2.v = v2;
        m2.l = 0;
        int count = 0;
        for (int i = 1; ; i++) {
            //printf("\n");
            //printf("time(%d):\n",i);
            if (count>0) {
                count--;
                //printf("r-sleep:%d ",count);
            } else {
               m1.l += m1.v;
            }
            m2.l += m2.v;
            if (count==0&&m1.l>=m2.l+t) {
                count = s;
            }
            //printf("r:%d,t:%d\n",m1.l,m2.l);
            if (m2.l==l&&m1.l==l) {
                printf("D\n%d",i);
                return 0;
            }
            if (m1.l==l) {
                printf("R\n%d",i);
                return 0;
            }
            if (m2.l==l) {
                printf("T\n%d",i);
                return 0;
            }
        }
        return 0;
    }
    
    

    相关文章

      网友评论

          本文标题:2020-05-25 龟兔赛跑预测

          本文链接:https://www.haomeiwen.com/subject/ohcuahtx.html