CF2205C Simons and Posting Blogs
Description
This life is like a TV show; we're swept along as the plotlines go.
— SHUN, [TRAP](https://open.spotify.com/track/4lfS48CaivAm4QaimqbAPv)
There are $ n $ blogs. The $ i $ -th blog mentioned $ l_i $ users in order as an array $ a_i=[a_{i,1},a_{i,2},\ldots,a_{i,l_i}] $ .
You are going to post all $ n $ blogs. Let us maintain a sequence $ Q $ that describes the list of users you have recently mentioned. You need to perform the following operation exactly $ n $ times:
- Choose an unposted blog $ i $ ( $ 1\le i\le n $ ), then post it. This will cause the following operations for each $ 1\le j\le l_i $ in order:
- If $ a_{i,j} $ already exists in $ Q $ , then move $ a_{i,j} $ to the beginning of $ Q $ .
- Otherwise, insert $ a_{i,j} $ at the beginning of $ Q $ .
Find the lexicographically smallest $ ^{\text{∗}} $ $ Q $ after all $ n $ operations.
$ ^{\text{∗}} $ An array $ x $ is lexicographically smaller than an array $ y $ if and only if one of the following holds:
- $ x $ is a prefix of $ y $ , but $ x \ne y $ ; or
- in the first position where $ x $ and $ y $ differ, the array $ x $ has a smaller element than the corresponding element in $ y $ .
Input Format
Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 1000 $ ). The description of the test cases follows.
The first line contains a single integer $ n $ ( $ 1\le n\le 3000 $ ) — the number of blogs.
Then $ n $ lines follow, the $ i $ -th line starting with an integer $ l_i $ ( $ 1\le l_i\le 3000 $ ), describing the number of users mentioned in the $ i $ -th blog, which is followed by $ l_i $ integers $ a_{i,1},a_{i,2},\ldots,a_{i,l_i} $ ( $ 1\le a_{i,j}\le 10^6 $ ) — the list of users mentioned in the $ i $ -th blog.
It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 3000 $ .
Denote $ \sum\limits_{i=1}^n l_i $ as $ L $ . It is guaranteed that the sum of $ L $ over all test cases does not exceed $ 3000 $ .
Output Format
Denote $ m $ as the number of users mentioned in at least one blog. For each test case, output $ m $ integers $ Q_1,Q_2,\ldots,Q_m $ — the lexicographically smallest $ Q $ .
Explanation/Hint
In the first test case, you can post the blogs as follows:
- Post the first blog, and $ Q $ will become $ [6,4,3,2,1] $ .
- Post the third blog, and $ Q $ will become $ [3,2,9,1,6,4] $ .
- Post the second blog, and $ Q $ will become $ [1,5,2,3,9,6,4] $ .
There is another method to post blogs:
- Post the third blog, and $ Q $ will become $ [3,2,9,1] $ .
- Post the first blog, and $ Q $ will become $ [6,4,3,2,1,9] $ .
- Post the second blog, and $ Q $ will become $ [1,5,2,6,4,3,9] $ .
We can see that $ [1,5,2,3,9,6,4] $ is lexicographically smaller than the other one. If we do not post the second blog at the end, the first element of the array will not be $ 1 $ , so $ [1,5,2,3,9,6,4] $ is the lexicographically smallest array $ Q $ .
In the second test case, you can post the blogs as follows:
- Post the first blog, and $ Q $ will become $ [6,1] $ .
- Post the second blog, and $ Q $ will keep itself $ [6,1] $ .
In the third test case, you have to post the only blog, and $ Q $ will become $ [1,6] $ .