测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A12558. Extending Set of Points

编程题 普及/提高-

题目描述

For a given set of two-dimensional points $S$ , let's denote its extension $E(S)$ as the result of the following algorithm:

Create another set of two-dimensional points $R$ , which is initially equal to $S$ . Then, while there exist four numbers $x_1$ , $y_1$ , $x_2$ and $y_2$ such that $(x_1, y_1) \in R$ , $(x_1, y_2) \in R$ , $(x_2, y_1) \in R$ and $(x_2, y_2) \notin R$ , add $(x_2, y_2)$ to $R$ . When it is impossible to find such four integers, let $R$ be the result of the algorithm.

Now for the problem itself. You are given a set of two-dimensional points $S$ , which is initially empty. You have to process two types of queries: add some point to $S$ , or remove some point from it. After each query you have to compute the size of $E(S)$ .

输入格式

The first line contains one integer $q$ ( $1 \le q \le 3 \cdot 10^5$ ) — the number of queries.

Then $q$ lines follow, each containing two integers $x_i$ , $y_i$ ( $1 \le x_i, y_i \le 3 \cdot 10^5$ ), denoting $i$ -th query as follows: if $(x_i, y_i) \in S$ , erase it from $S$ , otherwise insert $(x_i, y_i)$ into $S$ .

输出格式

Print $q$ integers. $i$ -th integer should be equal to the size of $E(S)$ after processing first $i$ queries.

输入输出样例

输入 #1
7
1 1
1 2
2 1
2 2
1 2
1 3
2 1
输出 #1
1 2 4 4 4 6 3 
上一题 去做题 下一题