아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

왕과 여왕

시간 제한2초메모리 제한256 MB

요약
n×m 판에서 (x, y)에 퀸이 있을 때, 대각선으로 못 가는 킹이 퀸의 공격을 피해 다닐 수 있는 영역의 개수와 각 영역의 크기를 오름차순으로 구한다.
난이도

보통10점 중 6점

유형
기하, 수학, 구현
정답자
아직 제출이 없습니다

문제

긴 체스 대결 끝에 n×mn \times m 크기의 체스판에는 검은 왕과 흰 여왕만 남았다. 체스를 조금이라도 해 본 사람이라면 이 상황에서 왕의 목숨이 위태롭다는 것을 안다. 설상가상으로 왕은 부상을 입어 대각선으로 이동할 수 없다. 따라서 왕은 한 번에 자신이 있는 칸과 변을 공유하는 칸으로만 이동할 수 있다. 여왕은 같은 세로줄, 가로줄, 대각선에 있는 칸을 모두 공격한다.

왕은 여왕이 너무 게을러서 자신을 쫓아오지 않는다는 것을 안다. 여왕은 좌표 (x,y)(x, y)인 칸에 그대로 서 있을 것이다. 따라서 왕은 체스판의 아무 칸이나 고른 뒤, 그 칸이 속한 영역에서 평생을 살 수 있다. 체스판의 영역이란, 부상당한 왕이 여왕의 공격을 받는 칸을 지나지 않고 영역 안의 임의의 칸에서 다른 임의의 칸으로 이동할 수 있는 칸의 집합이다.

이제 왕은 체스판에 있는 영역의 개수와 각 영역의 크기를 알고 싶어 한다. 왕을 도와주자.

입력

첫째 줄에 테스트 케이스의 수를 나타내는 10410^4 이하의 정수가 주어진다. 이어서 각 테스트 케이스가 한 줄에 하나씩 주어진다.

테스트 케이스는 네 정수 nn, mm, xx, yy (1≤x≤n≤109,1≤y≤m≤109)(1 \le x \le n \le 10^9, 1 \le y \le m \le 10^9)로 이루어진다. 이는 체스판의 크기와 여왕이 있는 칸의 좌표이다.

출력

각 테스트 케이스마다 다음 형식으로 답을 출력한다. 먼저 체스판에 있는 영역의 개수 xx를 출력한다. 그다음 xx개의 수를 출력하는데, 이는 각 영역의 크기이다. 크기는 비내림차순으로 출력한다. 수는 공백 또는 줄바꿈으로 구분한다.

예제1

  1. 예제 1

    입력
    3
    5 5 1 3
    3 3 2 2
    5 5 3 3
    
    예상 출력
    4 1 1 5 5
    0
    8 1 1 1 1 1 1 1 1