Разбор добавил Кирилл Афанасьев
Как сказано в условии, граф называется полным, если для любой пары вершин существует ребро между ними. Заведем двухмерный массив
\(a\) размера
\(N\)x
\(N\), в элементе
ai,j этого массива будем хранить 1, если существует хотя бы одно ребро между вершинами
\(i\) и
\(j\). Изначально заполним массив нулями. Дальше будем считывать пары чисел, которые описывают ребра графа, и присваивать соответствующим элементам массива значение 1. Заметим, что пары
\((i, j)\) и
\((j, i)\) описывают одно и то же ребро, и это надо учитывать при заполнении нашего массива: для каждой пары
\((i, j)\) мы должны записать 1 не только в элемент
ai,j нашего массива, но и в
aj,i.
После того, как мы считали все ребра, необходимо проверить, что для всех пар вершин
\((i, j)\), таких что
\(i\)≠
\(j\),
ai,j = 1. Если это не выполнено хотя бы для одного ребра - ответ "NO", иначе - "YES".