守望者的逃离
2014-03-01 12:57
211 查看
/*恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。守望者 在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始 对这个荒岛施咒,这座岛很快就会沉下去。到那时,岛上的所有人都会遇难。守望者的跑步 速度为17m/s,以这样的速度是无法逃离荒岛的。庆幸的是守望者拥有闪烁法术,可在1s内 移动60m,不过每次使用闪烁法术都会消耗魔法值10点。守望者的魔法值恢复的速度为4点/s ,只有处在原地休息状态时才能恢复。 现在已知守望者的魔法初值M,他所在的初始位置与岛的出口之间的距离S,岛沉没的时间T。 你的任务写写一个程序帮助守望者计算如何在最短的时间内逃离荒岛,若不能逃出,则输出 守望者在剩下的时间能走的最远距离。注意:守望者跑步、闪烁或休息活动均以秒(s)为单 位,且每次活动的持续时间为整数秒。距离的单位为米(m)。 Input Format 在输入文件escape.in仅一行,包括空格隔开的三个非负整数M,S,T。 Output Format 在输出文件escape.out包括两行: 第1行为字符串“Yes”或“No”(区分大小写),即守望者是否能逃离荒岛。 第2行包含一个整数。第一行为“Yes”(区分大小写)时表示守望者逃离荒岛的最短时间; 第一行为“No”(区分大小写)时表示守望者能走的最远距离。 Sample Input 【输入样例1】 39 200 4 【输入样例2】 36 255 10 Sample Output 【输出样例1】 No 197 【输出样例2】 Yes 6 */ import java.util.*; public class Main7 { // 算了几页纸,调试了4个小时,才通过。累觉不爱 public static long M, S, T; // t1代表剩下的时间,t代表所用的时间 public static long t, t1; // s代表走的路程 public static long s; public static void main(String args[]) { Scanner sc = new Scanner(System.in); M = sc.nextLong(); S = sc.nextLong(); T = sc.nextLong(); t = 0; s = 0; t1 = T; while (true) { // 判断使用闪烁的情况 if ((M >= 2 && t1 >= 3 && S - s > 45) || (M >= 6 && t1 >= 2 && S - s > 34 && M < 10) || (t1 >= 7 && S - s >= 120) || M >= 10) { // 使用闪烁方法 if (M >= 10) { M -= 10; s += 60; t++; } else { // 假如法力值小于10,则停下来补充法力值 while (true) { M += 4; t++; // 停下来加法力值是时间减少 --t1; if (M >= 10) { M -= 10; s += 60; // 闪烁需要用1秒 t++; break; } } } } else { // 使用跑步方法 s += 17; t++; } // 无论是跑步还是闪烁,都需要扣除1秒的时间,这里其实可以放到那一秒是跑步还是闪烁里面去。 --t1; System.out.println(t1 + " " + M + " " + t + " " + s); if (t >= T && s < S) { System.out.println("No"); System.out.println(s); // System.out.println(t + " " + s); return; } if (s >= S && t <= T) { System.out.println("Yes\n" + t); // System.out.println(t + " " + s); return; } } } }
相关文章推荐
- 『创意欣赏』30幅逼真的 3D 虚拟现实环境呈现
- 开发之余实用小技巧
- ColorOS的优点和缺点
- 基于java:读写一个英文的txt文件,记录单词个数,并输出十个出现最多的单词及出现的个数;
- Smart_ptr
- ExtJs 备忘录(1)—— Form表单(一) [ 控件使用 ]
- 垃圾邮箱过滤器
- 朋友的礼物(英雄会,csdn,高校俱乐部)信封问题,匹配模型
- 初学js正则表达式之密码强度验证
- CentOS6.4安装Oracle10g
- 使用关联数组去掉重复那个的项!
- Flash在线签名小程序,可回放,动态导出gif图片
- MySql与Java的时间类型
- (2014年3月1)Ubuntu 14.04 Beta 1-32位简体中文优化定制版
- 替换空格
- 《懂得低头,才能出头》--李艳
- (8)javascript 引用类型--Object类型
- mysql5.5.29绿色版的安装
- Android Bitmap的缓存实现再也不怕ListView多图 oom了
- 内存检测工具-kmemcheck kmemleak