P6472 [COCI 2008/2009 #6] SLICICE

题目背景

在一个城市里,有群孩子热衷于收集卡片。

题目描述

由于他们的零花钱不够,所以想出了一个办法:两人一组,每人出一半的钱,到商店购买两张卡片。紧接着,他们比赛谁先跑到市中心的喷泉,获胜者将得到这两张卡片。如果两人同时到达,那么每人将拿走一张。 有一天,所有的孩子聚集在了一起。他们想统计出所有的购买记录。但是孩子们的记忆有些模糊了,只记得一部分购买记录(且不知道谁得到了多少),并且数出了自己有多少张卡片。你需要编写一个程序,帮助孩子们还原一种可能的购买记录。

输入格式

输入第一行两个整数 $n,m$,表示孩子的数量和孩子们记忆中的购买记录。孩子从 $1\sim n$ 编号。 第二行 $n$ 个整数,表示每个孩子所拥有的卡片的数量。 接下来的 $m$ 行,每行两个整数 $a,b$,表示编号分别为 $a,b$ 的两个孩子一起去买了一次卡片。

输出格式

输出第一行一个整数 $k$,表示购买总数。 接下来的 $k$ 行,每行三个整数。前两个整数为一次购买中两个孩子的编号。第三个整数为前一个孩子在这次比赛中获得的卡片数($0/1/2$)。 **题目保证有解。购买的总数最多为 $1000$。如果有多种购买的方案,输出任意一种,本题使用 SPJ。**

说明/提示

#### 数据规模与约定 对于 $100\%$ 的数据,保证 $1\le n\le 100$,$0\le m\le 1000$。 #### 说明 **题目译自 [COCI2008-2009](https://hsin.hr/coci/archive/2008_2009/) [CONTEST #6](https://hsin.hr/coci/archive/2008_2009/contest6_tasks.pdf) *T6 SLICICE***。