CF350E Wrong Floyd

题目描述

Valera 正在研究寻找最短路径的算法。他最近学习了 Floyd 算法,因此决定进行实践。 Valera 已经编写了一个代码,用于计算一个包含 $n$ 个顶点和 $m$ 条边的无向连通图中任意两顶点之间的最短距离。该图不含自环和重边。此外,Valera 决定标记部分顶点,他恰好标记了 $k$ 个顶点 $a_1, a_2, \ldots, a_k$。 Valera 的代码如下: ``` ans[i][j] // 顶点 i, j 之间的最短距离 a[i] // Valera 标记的顶点集合 for(i = 1; i

输入格式

第一行输入三个整数 $n, m, k$($3 \leq n \leq 300$,$2 \leq k \leq n$,$n-1 \leq m \leq \frac{n(n-1)}{2}$)—— 顶点数、边数和被标记的顶点数。 第二行输入 $k$ 个空格分隔的整数 $a_1, a_2, \ldots, a_k$($1 \leq a_i \leq n$)—— 被标记顶点的编号。保证所有 $a_i$ 互不相同。

输出格式

如果不存在符合条件的图,输出一行 -1。否则输出 $m$ 行,每行两个整数 $u, v$ —— 表示构造的图的边。

说明/提示

翻译由 DeepSeek R1 完成