思路:1,如果不符合最小值<=平均值并且平均值<=最大值直接则无解ok=false
2,如果不符合凑出总和的最小值<=总和并且总和<=凑出总和的最大值则无解ok=false
AC代码
import java.util.Scanner;
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// code here
int test = input.nextInt();
int n, max, min, avg;
for (int i = 0; i < test; i++) {
n = input.nextInt();
max = input.nextInt();
min = input.nextInt();
avg = input.nextInt();
boolean ok = true;
if (!(min <= avg && avg <= max)) {
ok = false;
}
if (!(min * (n - 1) + max <= avg * n && avg * n <= min + max * (n - 1)))
ok = false;
if (ok) {
System.out.println("yes");
} else {
System.out.println("no");
}
}
input.close();
}
}