乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?
输入格式:
输入在一行中给出比赛时间T(分钟)。
输出格式:
在一行中输出比赛的结果:乌龟赢输出@_@
,兔子赢输出^_^
,平局则输出-_-
;后跟1空格,再输出胜利者跑完的距离。
输入样例:
242
输出样例:
@_@ 726

1 #include<algorithm> 2 #include<iostream> 3 #include<cstring> 4 #include<cstdio> 5 #include<cmath> 6 using namespace std; 7 int main(){ 8 int t,rabbit_sum,tortoise_sum; 9 scanf("%d",&t); 10 rabbit_sum = 0,tortoise_sum = 0; 11 for(int i = 1;i <= t;i++){ 12 rabbit_sum += 9; 13 tortoise_sum += 3; 14 if(i % 10 == 0){ 15 if(rabbit_sum > tortoise_sum){ 16 if(i + 30 <= t){//判断往后走30分钟是否会超出规定的时间!! 17 tortoise_sum += 90; 18 i += 30; 19 } 20 else{ 21 tortoise_sum += 3 * (t - i); 22 i += (t - i); 23 } 24 } 25 else{ 26 if(i + 10 <= t){ 27 rabbit_sum += 90; 28 tortoise_sum += 30; 29 i += 10; 30 } 31 else{ 32 rabbit_sum += 9 * (t - i); 33 tortoise_sum += 3 * (t - i); 34 i += (t - i); 35 } 36 } 37 } 38 } 39 if(rabbit_sum > tortoise_sum){ 40 printf("^_^ %d\n",rabbit_sum); 41 } 42 else if(rabbit_sum < tortoise_sum){ 43 printf("@_@ %d\n",tortoise_sum); 44 } 45 else{//平局也要输出距离 46 printf("-_- %d\n",tortoise_sum); 47 } 48 return 0; 49 }