307753: CF1408H. Rainbow Triples
Memory Limit:256 MB
Time Limit:2 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Rainbow Triples
题意翻译
给定长度为 $n$ 的序列 $p$ 找出尽可能多的三元组 $(a_i,b_i,c_i)$ 满足: - $1\le a_i<b_i<c_i\le n$ - $p_{a_i}=p_{c_i}=0$,$p_{b_i}\ne 0$ - $p_{b_i}$ 互不相同。 - 所有的 $a_i,b_i,c_i$ 互不相同。 输出最多可以选出多少个三元组,多组数据。 $\sum n\le 5\cdot 10^5$题目描述
You are given a sequence $ a_1, a_2, \ldots, a_n $ of non-negative integers. You need to find the largest number $ m $ of triples $ (i_1, j_1, k_1) $ , $ (i_2, j_2, k_2) $ , ..., $ (i_m, j_m, k_m) $ such that: - $ 1 \leq i_p < j_p < k_p \leq n $ for each $ p $ in $ 1, 2, \ldots, m $ ; - $ a_{i_p} = a_{k_p} = 0 $ , $ a_{j_p} \neq 0 $ ; - all $ a_{j_1}, a_{j_2}, \ldots, a_{j_m} $ are different; - all $ i_1, j_1, k_1, i_2, j_2, k_2, \ldots, i_m, j_m, k_m $ are different.输入输出格式
输入格式
The first line of input contains one integer $ t $ ( $ 1 \leq t \leq 500\,000 $ ): the number of test cases. The first line of each test case contains one integer $ n $ ( $ 1 \leq n \leq 500\,000 $ ). The second line contains $ n $ integers $ a_1, a_2, \ldots, a_n $ ( $ 0 \leq a_i \leq n $ ). The total sum of $ n $ is at most $ 500\,000 $ .
输出格式
For each test case, print one integer $ m $ : the largest number of proper triples that you can find.
输入输出样例
输入样例 #1
8
1
1
2
0 0
3
0 1 0
6
0 0 1 2 0 0
6
0 1 0 0 1 0
6
0 1 3 2 0 0
6
0 0 0 0 5 0
12
0 1 0 2 2 2 0 0 3 3 4 0
输出样例 #1
0
0
1
2
1
1
1
2