P17782 若叶睦不是罪过

题目背景

『我从没觉得玩乐队开心过。』 『……不会长久。』 『小睦已经死掉了哦。』 『素世……让小睦醒来吧……』 『……难道我才是坏孩子吗?』 :::info[睦,] 在这扭曲空洞的世界 你就是为可悲的我们带来救赎的天使 我做了个梦 梦到我们仍像小时候那样一直在一起 偶尔唱歌偶尔起舞 你说最喜欢我的歌声了 谢谢 不过一定是我更加喜欢你吧 但是现在是梦醒时刻 无论我怎么去爱 都无法彻底爱上 无法得到你的爱 我是如此的讨厌你 你触碰吉他之后不愿意再看我一眼 为什么还要去接近丰川祥子 为什么不听我说话 明明我是为了保护你替你承受痛苦才登上舞台的 如果没有你的话我就不会死去 我是如此的爱你 我多么想这些话能对着你说 我多么想你也能对我这么说 我不想你再受到伤害不想你再悲伤 如果没有你的话我也不会诞生 你明知道我想要什么 想要你看着我 想要你爱我 我清楚地知晓我的存在会致使你痛苦 但现在悄悄地仅与你共度这奇妙的时光 “这才不是我的错” 是一句谎言 我用冰冷的双手埋葬了所爱 你还会接受我吗 在摇摇欲坠的心之壁中 潜藏着荒谬无理的梦 你属于我 我属于你 明明近在咫尺 却无法实现 :::

题目描述

在一个平面直角坐标系上,有 $n$ 个点,编号为 $1\sim n$,点 $1$ 坐标为 $(0,0)$,点 $n$ 坐标为 $(X,Y)$,第 $i$ 点坐标 $(x_i,y_i)$ 均满足 $0\le x_i\le X\land 0\le y_i\le Y$ 且 $x_i,y_i$ 均为整数。保证不存在坐标完全相同的点。 可以在这些点间连有向边,得到一个图。 称一个图是睦的,当且仅当,所有有向边 $u\to v$ 满足 $x_u\le x_v\land y_u\le y_v$,同时点 $1$ 可以到达所有点。 称一个图是莫的,当且仅当,所有有向边 $u\to v$ 满足 $x_u\ge x_v\land y_u\ge y_v$,同时点 $n$ 可以到达所有点。 称一个睦图 $G_0$ 和一个莫图 $G_1$ 是对称的,当且仅当 $G_0$ 中出度为 $0$ 的点在 $G_1$ 中出度不为 $0$,且 $G_0$ 中出度不为 $0$ 的点在 $G_1$ 中出度为 $0$,同时两图的点集完全相同。 你的程序会被运行两次。第一次运行,给你一个用这 $n$ 个点生成的 $m$ 条边简单睦图 $G$,你需要构造一个与 $G$ 对称的莫图 $G'$(不要求简单,即可以有重边和自环)。第二次运行,将你构造的 $G'$ 给你,你需要还原 $G$。 保证 $n=100$,$m\le 2n$。你需要保证 $G'$ 内的边数 $m'\le 63757$。 ### 实现细节 你需要实现三个函数: ```cpp void init(int n,std::vector X,std::vector Y); std::vector mu(std::vector G); std::vector mo(std::vector G); ``` 在两次运行开始时,均会调用一次 `init` 函数,传入 $n$ 以及各点坐标,$X,Y$ 均为长为 $n$ 的序列,其中第 $i$ 个元素表示 $x_i,y_i$。 第一次运行时,会调用 `mu` 函数,传入图 $G$,返回 $G'$。第二次运行时,会调用 `mo` 函数,传入图 $G'$,返回图 $G$。 传入与返回的图均用两维大小均为 $n$ 的二维数组表示,第 $i$ 行第 $j$ 列的元素表示点 $i+1$ 连向点 $j+1$ 的边数,注意行列下标自 $0$ 起。

输入格式

无

输出格式

无

说明/提示

#### 【数据范围】 对所有数据,满足 $n=100$,$m\le 2n$,$0\le X,Y\le 1000$。 #### 【交互示例】 注:不保证交互逻辑合理性,只提供格式展示。为方便,传参及返回部分用存在的边集表示图,而非实际交互的表示方式,$(x,y)$ 表示存在一条 $x\to y$ 的边。 |调用|返回| |:-:|:-:| |`init(4,{0,1,2,3},{0,2,1,3})`|无| |`mu({(1,2),(1,3),(2,4)})`|`{(4,2),(4,3),(3,1)}`| |`mo({(4,2),(4,3),(3,1)})`|`{(1,2),(1,3),(2,4)}`| --- *Mutsumi,你会见到母爱的 soyo 和软糯的 saki,不是因为她们变了,而是因为我来过。* :::align{right} *——爱你的,Mortis* :::