全AC代码:
/**
* @param chinese[i] 表示第i位学生的语文成绩,math[i],english[i]同
* @param total_i 表示第i位学生的总成绩,total_j同
* @param cnt 统计对数
*/
int cnt = 0;
for (int i = 0; i < n; i++) {
int total_i = chinese[i] + math[i] + english[i];
for (int j = i+1; j < n; j++) {
int total_j = chinese[j] + math[j] + english[j];
if (Math.abs(chinese[i] - chinese[j]) <= 5 &&
Math.abs(math[i] - math[j]) <= 5 &&
Math.abs(english[i] - english[j]) <= 5 &&
Math.abs(total_i - total_j) <= 10) {
cnt++;
}
}
}
全WA代码:
int cnt = 0;
for (int i = 0; i < n; i++) {
int toti = chinese[i] + math[i] + english[i];
for (int j = i+1; j < n; j++) {
int totj = chinese[j] + math[j] + english[j];
if (Math.abs(toti - totj) > 10) {
break;
}
if (Math.abs(chinese[i] - chinese[j]) > 5) {
break;
}
if (Math.abs(math[i] - math[j]) > 5) {
break;
}
if (Math.abs(english[i] - english[j]) > 5) {
break;
}
cnt++;
}
}
AC代码是在1个if语句中判断是否满足所有条件,而WA代码是分了4个if语句分别判断是否满足条件,但为什么前者AC,而后者WA?