Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

printРабочее место участника

printЗадачи

2412. Сортировка

Ограничения: время – 1000ms/2000ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Задан набор из M операций обмена (a1,b1),  над массивом из N чисел X_1,\ …,\ X_N. Необходимо отсортировать массив в неубывающем порядке, используя эти операции обмена. Каждая пара (a_i,\ b_i) означает, что можно поменять местами элементы массива X_{a_i} и X_{b_i}. Операции обмена можно применять неограниченное количество раз и в произвольном порядке.
Напишите программу, определяющую, можно ли упорядочить некоторый массив, используя заданный набор операций обмена.
Первая строка ввода содержит два целых числа – размер массива N (2\ ≤\ N\ ≤\ 100000) и количество операций обмена M (1\ ≤\ M\ ≤\ min(200000,(N*(N-1))/2)). Далее следует M строк, содержащих по два целых числа a_i,\ b_i (1\ ≤\ a_i\ <\ b_i\ ≤\ N) – описание операции обмена. Далее следует строка, содержащая одно целое число K (1\ ≤\ K\ ≤\ 10) – количество массивов, которые нужно отсортировать. Далее следует K строк, в каждой строке по N целых чисел в диапазоне от 0 до 10^9 - массивы для сортировки.
Вывести K строк, для каждого массива вывести на соответствующей строке сообщение YES, если массив можно отсортировать с помощью заданного набора операций обмена, иначе вывести сообщение NO.

Пример ввода

4 2
1 2
3 4
2
4 2 8 4
1 3 2 4

Пример вывода

YES
NO
loading