CF1090D.Similar Arrays

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Vasya 有一个长度为 nn 的整数数组,数组中的每个元素都是 11 到 nn 之间的整数。他选择了 mm 对不同的位置,并把这些位置对写在了一张纸上。然后 Vasya 比较了这些位置上的元素,并把比较的结果写在了另一张纸上。对于每一对位置,他会写下“更大”、“更小”或“相等”。

多年以后,他找到了第一张纸,但找不到第二张纸了。他也不记得原来的数组是什么,甚至不记得数组中是否有相等的元素。他把这个悲伤的故事告诉了他的计算机老师 Dr Helen。

老师告诉他,即使找到了第二张纸,他也可能无法确定数组中是否有两个相等的元素。

现在 Vasya 想要找到两个长度为 nn 的整数数组。第一个数组的所有元素必须互不相同,第二个数组中必须有两个相等的元素。对于 Vasya 写在第一张纸上的每一对位置,这两个数组在对应位置上的元素比较结果必须相同。

请你帮助 Vasya 找到这样两个长度为 nn 的数组,或者判断不存在这样的数组。

输入格式

输入的第一行包含两个整数 nn 和 mm,分别表示数组的长度和 Vasya 进行比较的次数(1≤n≤100 0001 \le n \le 100\,000,0≤m≤100 0000 \le m \le 100\,000)。

接下来的 mm 行,每行包含两个整数 aia_i 和 bib_i,表示第 ii 次比较的位置(1≤ai,bi≤n1 \le a_i, b_i \le n,ai≠bia_i \ne b_i)。保证任意无序对在输入中最多只出现一次。

输出格式

输出的第一行为 "YES",如果存在满足条件的两个数组;否则输出 "NO"。

如果存在这样的数组,第二行输出第一个数组(所有元素互不相同),第三行输出第二个数组(至少有一对元素相等)。数组中的元素必须是 11 到 nn 之间的整数。

输入输出样例

  • 输入#1

    1 0
    

    输出#1

    NO
    
  • 输入#2

    3 1
    1 2
    

    输出#2

    YES
    1 3 2 
    1 3 1 
    
  • 输入#3

    4 3
    1 2
    1 3
    2 4
    

    输出#3

    YES
    1 3 4 2 
    1 3 4 1 
    

说明/提示

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页