The Attack of Queen Solution Codechef
Chef has started developing interest in playing chess, and was learning how the Queen moves.
Chef has an empty N×N chessboard. He places a Queen at (X,Y) and wonders – What are the number of cells that are under attack by the Queen?
Notes:
The top-left cell is (1,1), the top-right cell is (1,N), the bottom-left cell is (N,1) and the bottom-right cell is (N,N).
The Queen can be moved any number of unoccupied cells in a straight line vertically, horizontally, or diagonally.
The cell on which the Queen is present, is not said to be under attack by the Queen.
Input Format
The first line contains a single integer T – the number of test cases. Then the test cases follow.
The first and only line of each test case contains three integers N, X and Y, as described in the problem statement.
Output Format
For each test case, output in a single line, the total number of cells that are under attack by the Queen.
Constraints
1≤T≤104
1≤N≤106
1≤X,Y≤N
Sample Input 1
5
1 1 1
3 2 2
3 2 1
2 2 2
150 62 41
Sample Output 1
0
8
6
3
527
Explanation
- Test case 1: The only cell on the board is (1,1). Since Queen stands on this cell, it is not under attack.
- Test case 2: The Queen can attack the following cells: {(1,1),(1,2),(1,3),(2,1),(2,3),(3,1),(3,2),(3,3)}.
- Test case 3: The Queen can attack the following cells: {(1,1),(1,2),(2,2),(2,3),(3,1),(3,2)}.
- Test case 4: The Queen can attack the following cells: {(1,1),(1,2),(2,1)}.
SOLUTION
Program: The Attack of Queen Solution Codechef in Python
t=int(input())
for i in range(t):
n,x,y=map(int,input().split())
q=n-x+x-1+n-y+y-1
a=min(x-1,y-1)
b=min(x-1,n-y)
c=min(n-x,y-1)
d=min(n-x,n-y)
print(q+a+b+c+d)
Program: The Attack of Queen Solution Codechef in C++
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
long n,x,y;
cin>>n>>x>>y;
cout<<2*n-2 +
min(abs(1-x),(abs(1-y)))+
min(abs(n-x),(abs(n-y)))+
min(abs(1-x),(abs(n-y)))+
min(abs(n-x),(abs(1-y)));
cout<<endl;
}
return 0;
}
Program: The Attack of Queen Solution Codechef in Java
import java.util.*;
import java.lang.*;
import java.io.*;
class Codechef
{ public static void main (String[] args) throws java.lang.Exception
{
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
for(int i=0;i<t;i++){
int n=sc.nextInt();
int x=sc.nextInt();
int y=sc.nextInt();
int sum=2*(n-1);
sum=sum+Math.min(x,y)+Math.min(n-x,n-y);
sum=sum+Math.min(x-1,n-y)+Math.min(y-1,n-x);
System.out.println(sum-1);
}
}
}
Related:
- The Magical Stone Solution Codechef
- Alternating Diameter ALTDIA Solution Codechef
- Mystical Numbers XORGAND Solution Codechef
- Pushpa PUSH7PA Solution Codechef
- Sugarcane Juice Business Solution Codechef
- In The Green Zone ITGRZN Solution Codechef
- Four Arrays FOURARR Solution Codechef
- Miami GP F1RULE Solution Codechef
- Football Cup FOOTCUP Solution Codechef