AtCoder ABC 010 A&B&C AtCoder - 010
private void solveA() {
out.println(next() + "pp");
}
`` J'ai essayé de brancher au début, mais quand j'y pensais, c'était plus facile à lire si je branchais au reste de 6, qui est le multiple commun minimum de 2 et 3. --Le commentaire si l'instruction est également AC
private void solveB() {
int n = nextInt();
int[] wk = IntStream.range(0, n).map(i -> nextInt()).toArray();
int res = Arrays.stream(wk).reduce(0, (sum, i) -> {
switch (i % 6) {
case 1:
return sum;
case 2:
return ++sum;
case 3:
return sum;
case 4:
return ++sum;
case 5:
return sum += 2;
case 0:
return sum += 3;
}
// if (i % 2 == 1) {
// switch (i % 3) {
// case 0:
// case 1:
// return sum;
// case 2:
// return sum += 2;
// }
//
// } else {
// switch (i % 3) {
// case 0:
// return sum += 3;
// case 1:
// case 2:
// return ++sum;
// }
// }
return sum;
});
out.println(res);
}
--J'ai vu le théorème des trois carrés pour la première fois depuis longtemps ――Si vous regardez la solution après avoir pensé qu'elle passera même si vous la poussez fort, vous pouvez la résoudre avec le théorème elliptique. .. .. Je ne comprends pas. .. ..
private void solveC() {
int sX = nextInt();
int sY = nextInt();
int gX = nextInt();
int gY = nextInt();
int t = nextInt();
int v = nextInt();
int n = nextInt();
for (int i = 0; i < n; i++) {
int tmpX = nextInt();
int tmpY = nextInt();
double total = (Math.hypot(Math.abs(tmpX - sX), Math.abs(tmpY - sY))
+ Math.hypot(Math.abs(tmpX - gX), Math.abs(tmpY - gY)));
if (total <= t * v) {
out.println("YES");
return;
}
}
out.println("NO");
}
Recommended Posts