题目描述
小蓝非常喜欢玩FPS类游戏,最近他迷上了一款打靶游戏,已知总共会出现 n 个靶子,每次开枪如果打中了靶子则会得到 1 分,另外不论这次开枪打中与否,靶子都将消失,现在有 m 个靶子已经出现过(出现过的靶子不会再出现),现在小蓝已经得到了 X 分,小蓝想知道他是否有可能最终分数为 Y 。
输入描述:
第一行包含一个整数 T(1≤T≤100),表示测试用例的组数。
对于每组测试用例:
输入一行包含四个整数 n,m,X,Y(1≤m≤n≤10^6,0≤X≤m,0≤Y≤10^9)
输出描述:
对于每组测试用例:
输出一个字符串,若小蓝想最终分数有可能为 Y则输出 "Yes" ,否则输出 "No" (不带引号)。
示例1
输入
3
5 3 1 3
5 3 2 3
5 3 1 4
输出
Yes
Yes
No
思路
题目没什么难度,注意避坑就好:若X > Y ,那么最终分数就不可能为Y了。
代码
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt() ; while(T-- > 0){ long n = sc.nextLong() ; long m = sc.nextLong() ; long X =sc.nextLong() ; long Y = sc.nextLong() ; if(X > Y){ //若X超过Y了,最终分数就没可能是Y了。 System.out.println("No") ; }else{ if(Y - X <= n - m) System.out.println("Yes") ; else System.out.println("No") ; } } } }