J. Segments

Codeforces
IDCF926J
Time1000ms
Memory256MB
Difficulty
data structures
There is a straight line colored in white. _n_ black segments are added on it one by one. After each segment is added, determine the number of connected components of black segments (i. e. the number of black segments in the union of the black segments). In particular, if one segment ends in a point _x_, and another segment starts in the point _x_, these two segments belong to the same connected component. ## Input The first line contains a single integer _n_ (1 ≤ _n_ ≤ 200 000) — the number of segments. The _i_\-th of the next _n_ lines contains two integers _l__i_ and _r__i_ (1 ≤ _l__i_ < _r__i_ ≤ 109) — the coordinates of the left and the right ends of the _i_\-th segment. The segments are listed in the order they are added on the white line. ## Output Print _n_ integers — the number of connected components of black segments after each segment is added. [samples] ## Note In the first example there are two components after the addition of the first two segments, because these segments do not intersect. The third added segment intersects the left segment and touches the right segment at the point 4 (these segments belong to the same component, according to the statements). Thus the number of connected components of black segments is equal to 1 after that.
Samples
Input #1
3
1 3
4 5
2 4
Output #1
1 2 1
Input #2
9
10 20
50 60
30 40
70 80
90 100
60 70
10 40
40 50
80 90
Output #2
1 2 3 4 5 4 3 2 1
API Response (JSON)
{
  "problem": {
    "name": "J. Segments",
    "description": {
      "content": "There is a straight line colored in white. _n_ black segments are added on it one by one. After each segment is added, determine the number of connected components of black segments (i. e. the number",
      "description_type": "Markdown"
    },
    "platform": "Codeforces",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "CF926J"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "There is a straight line colored in white. _n_ black segments are added on it one by one.\n\nAfter each segment is added, determine the number of connected components of black segments (i. e. the number...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments