시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 512 MB | 28 | 5 | 4 | 30.769% |
Little Petya started to learn how to write some digits, he is just learning to write the following 5 digits:
He draws each digit exactly with the same dimensions as the above image, but he might make zero or more of the following updates:
Note that shrinking and expanding a digit doesn’t change the thickness of a segment, and it affects the whole digit equally. For example shrinking or expanding the digit 3 vertically (before rotating it), will always keep the middle horizontal segment exactly in the middle between the other horizontal segments.
Now he has an infinite 2D plane, where he writes a lot of digits, but he keeps the following rules valid:
Petya will draw the digits by drawing line segments, each segment starts and ends at points with integer coordinates, and all segments are guaranteed to be vertical or horizontal with positive integer length. Note that the segments can touch or even overlap, but when this happens, these segments belong to the same instance of the same digit (check the second sample test case).
The following image represents some invalid digits which will never appear in the input:
The 1 is rotated incorrectly, the length of the middle horizontal segment in the 3 is wrong, the middle horizontal segment in the 2 isn’t in the middle anymore and the 4 is mirrored (not rotated).
You will be given a list of line segments which Petya draw, and it’s guaranteed that these line segments will form only valid digits as described above. Your task is to find how many times each digit was drawn.
Your program will be tested on one or more test cases. The first line of the input will be a single integer T, the number of test cases (1 ≤ T ≤ 100). Followed by T test cases.
Each case starts with a line containing an integer N the number of segments to draw (1 ≤ N ≤ 100, 000). Followed by N lines, each line contains 4 integers, X1, Y1, X2 and Y2, representing a line segment between the points (X1, Y1) and (X2, Y2) (1 ≤ X1, Y1, X2, Y2 ≤ 1, 000, 000, 000).
For each test case, print 5 integers separated by a single space, each integer represents how many times each digit was drawn, in the same order from left to right like the first image.
2 17 1 1 1 7 1 7 4 7 4 7 4 1 4 1 1 1 6 1 6 7 11 1 8 1 8 1 8 4 8 4 11 4 11 4 11 7 11 7 8 7 13 1 16 1 16 1 16 7 16 7 13 7 16 4 13 4 21 1 21 7 21 4 18 4 18 4 18 7 24 1 2 1 4 1 4 1 8 1 6 1 10 1 11 4 11 2 1 2 9 2 1 3 1 2 5 3 5 2 9 3 9 4 7 4 8 4 8 5 8 5 8 5 7 5 7 4 7 5 2 5 6 5 4 8 4 8 4 8 2 5 9 5 10 5 10 6 10 6 10 6 9 6 9 7 9 7 9 7 10 8 7 8 10 8 10 9 10 9 10 9 7 9 7 8 7
1 1 1 1 1 2 2 1 1 1
The first sample test case represents the first image.
The second sample test case represents the following image (note that some segments might overlap and/or touch to form one longer segment):