# QUEENATTACK - Editorial

Author: Lavish Gupta
Testers: Satyam, Abhinav Sharma
Editorialist: Nishank Suresh

To be calculated

None

# PROBLEM:

A queen is placed at cell (X, Y) on a N\times N chessboard. How many cells does it attack?

# EXPLANATION:

Let’s separately count the squares that are under attack horizontally, vertically, and diagonally. Our answer is the sum of these squares.

• Horizontally: The queen can move any number of squares horizontally. So, every square in its row is under attack, apart from the one it’s standing on. This gives us N-1 squares.
• Vertically: The exact same reasoning as the horizontal case gives us N-1 more squares in this case as well.
• Diagonally: There are two diagonals to consider, so once again we count them separately and add up.
• One diagonal consists of all squares (A, B) such that A+B = X+Y. A little experimenting on paper should show you that the number of squares on this diagonal is the difference between N+1 and X+Y, i.e, |(N+1) - (X+Y)|. Subtract one from this to account for the square the queen is standing on.
• The other diagonal consists of all squares (A, B) such that A - B = X - Y. Once again, a little experimenting will show that the number of squares on this diagonal is N - |X - Y|, from which we subtract one.

# TIME COMPLEXITY:

\mathcal{O}(1) per test.

# CODE:

Python
for _ in range(int(input())):
n, x, y = map(int, input().split())
ans = 2*n # row + column
ans += n - abs(x - y) # diagonal 1
ans += n - abs(n+1 - (x + y)) # diagonal 2
print(ans - 4)

1 Like