AT_abc405_f [ABC405F] Chord Crossing

题目描述

在一个圆上等距分布着 $2N$ 个点,顺时针编号为 $1,2,\cdots,2N$。$2N$ 顺时针方向的下一个点是 $1$。 接下来圆上出现了 $M$ 条线段,第 $i$ 条线段的两个端点分别为 $A_i$ 和 $B_i$,并且**这两个端点的编号是偶数**。保证不会有两条线段共享一个端点。 接下来你要回答 $Q$ 个询问,每次询问给出**两个奇数** $C_j,D_j$,你要回答如果圆上新增了一条线段,两个端点分别是 $C_j,D_j$,那么这条新线段会和原有的 $M$ 条线段中的多少条相交。

输入格式

第一行两个整数 $N,M(2\le N\le 10^6,1\le M\le \min(\left\lfloor\frac{N}{2}\right\rfloor,2\times 10^5))$。\ 接下来 $M$ 行,每行两个整数 $A_i,B_i(1\le A_i

输出格式

输出 $Q$ 行,每行一个整数依次回答询问。

说明/提示

**样例 1 解释** 如下图: ![](https://img.atcoder.jp/abc405/7f9b7b9c988c95df92d0a5919a865fcc.png) 黑点表示圆上的 $2N$ 个点,蓝线为 $M$ 条线段,第 $i$ 条称线段 $i$;红线表示询问,第 $i$ 个对应的线段称询问 $i$。 - 第一次询问中,和询问 $1$ 相交的线段为线段 $1$; - 第二次询问中,和询问 $2$ 相交的线段有线段 $1,2$; - 第三次询问中,没有线段和询问 $3$ 相交。 By @[chenxi2009](/user/1020063)