git reimport
This commit is contained in:
67
archive/2018.11/2018.11.03 - unsorted/CHQUEENS.java
Normal file
67
archive/2018.11/2018.11.03 - unsorted/CHQUEENS.java
Normal file
@@ -0,0 +1,67 @@
|
||||
package chelper;
|
||||
|
||||
import io.InputReader;
|
||||
import io.OutputWriter;
|
||||
import misc.SimpleSavingChelperSolution;
|
||||
|
||||
|
||||
public class CHQUEENS extends SimpleSavingChelperSolution {
|
||||
|
||||
public void solve(int testNumber, InputReader in, OutputWriter out) {
|
||||
wrapSolve(testNumber, in, out);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void solve(int testNumber) {
|
||||
int n = in.nextInt();
|
||||
int m = in.nextInt();
|
||||
int x = in.nextInt() - 1;
|
||||
int y = in.nextInt() - 1;
|
||||
|
||||
// int[] a = {
|
||||
// x - 1,
|
||||
// Math.min(x - 1, m - y),
|
||||
// m - y,
|
||||
// Math.min(m - y, n - x),
|
||||
// n - x,
|
||||
// Math.min(n - x, y - 1),
|
||||
// y - 1,
|
||||
// Math.min(y - 1, x - 1),
|
||||
// };
|
||||
|
||||
int res = 0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = 0; j < m; j++) {
|
||||
if (i == x && j == y) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int canSee = 0;
|
||||
|
||||
// canSee += i;
|
||||
// canSee += Math.min(i, m - j - 1);
|
||||
// canSee += m - j - 1;
|
||||
// canSee += Math.min(m - j - 1, n - i - 1);
|
||||
// canSee += n - i - 1;
|
||||
// canSee += Math.min(n - i - 1, j);
|
||||
// canSee += j;
|
||||
// canSee += Math.min(j, i);
|
||||
|
||||
if (i == x && j < y) canSee += y - j - 1; else canSee += m - j - 1;
|
||||
if (i < x && j == y) canSee += x - i - 1; else canSee += n - i - 1;
|
||||
if (i == x && j > y) canSee += j - y - 1; else canSee += j;
|
||||
if (i > x && j == y) canSee += i - x - 1; else canSee += i;
|
||||
|
||||
|
||||
if (i < x && x - i == y - j) canSee += x - i - 1; else canSee += Math.min(n - i - 1, m - j - 1);
|
||||
if (i < x && x - i == j - y) canSee += x - i - 1; else canSee += Math.min(n - i - 1, j);
|
||||
if (i > x && i - x == j - y) canSee += i - x - 1; else canSee += Math.min(i, j);
|
||||
if (i > x && i - x == y - j) canSee += i - x - 1; else canSee += Math.min(i, m - j - 1);
|
||||
|
||||
res += n * m - canSee - 2;
|
||||
}
|
||||
}
|
||||
|
||||
out.println(res);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user