인접한 룩
시간 제한1초메모리 제한512 MB
n x n 체스판에 같은 행이나 열을 공유하지 않도록 룩 n개를 놓을 때, 대각선으로 인접한 쌍이 정확히 k개인 배치의 수를 10^9+7로 나눈 나머지를 구한다.
문제
오크 교수는 학생들을 위해 문제를 하나 준비하고 있다. 문제는 체스판에 개의 룩을 서로 위협하지 않도록, 즉 어떤 두 룩도 같은 열이나 같은 행에 놓이지 않도록 배치하는 방법의 수를 세는 것이다.
그런데 이 문제는 너무 쉬워서, 오크 교수는 조건을 하나 더 붙이기로 했다. 두 룩이 대각선으로 인접해 있는, 즉 열도 이웃하고 행도 이웃한 룩 쌍이 정확히 개인 배치의 수만 세고 싶다. 이 문제를 풀 수 있겠는가?
답은 로 나눈 나머지를 출력한다.
입력
첫째 줄에 테스트 케이스의 수 가 주어진다 ().
각 테스트 케이스는 한 줄에 두 정수 과 로 주어진다 (; ). 은 룩의 개수이고, 는 대각선으로 인접해야 하는 룩 쌍의 개수이다.
출력
어떤 두 룩도 같은 행이나 같은 열에 있지 않으면서 대각선으로 인접한 룩 쌍이 정확히 개가 되도록 개의 룩을 놓는 방법의 수를 하나의 정수로 출력한다. 답은 로 나눈 나머지로 나타내야 한다.