[COCI2008-2009#6] SLICICE
题目背景
在一个城市里,有群孩子热衷于收集卡片。
题目描述
由于他们的零花钱不够,所以想出了一个办法:两人一组,每人出一半的钱,到商店购买两张卡片。紧接着,他们比赛谁先跑到市中心的喷泉,获胜者将得到这两张卡片。如果两人同时到达,那么每人将拿走一张。
有一天,所有的孩子聚集在了一起。他们想统计出所有的购买记录。但是孩子们的记忆有些模糊了,只记得一部分购买记录(且不知道谁得到了多少),并且数出了自己有多少张卡片。你需要编写一个程序,帮助孩子们还原一种可能的购买记录。
输入输出格式
输入格式
输入第一行两个整数 $n,m$,表示孩子的数量和孩子们记忆中的购买记录。孩子从 $1\sim n$ 编号。
第二行 $n$ 个整数,表示每个孩子所拥有的卡片的数量。
接下来的 $m$ 行,每行两个整数 $a,b$,表示编号分别为 $a,b$ 的两个孩子一起去买了一次卡片。
输出格式
输出第一行一个整数 $k$,表示购买总数。
接下来的 $k$ 行,每行三个整数。前两个整数为一次购买中两个孩子的编号。第三个整数为前一个孩子在这次比赛中获得的卡片数($0/1/2$)。
**题目保证有解。购买的总数最多为 $1000$。如果有多种购买的方案,输出任意一种,本题使用 SPJ。**
输入输出样例
输入样例 #1
2 3
5 1
1 2
1 2
1 2
输出样例 #1
3
1 2 1
1 2 2
1 2 2
输入样例 #2
4 3
5 3 1 1
1 3
2 3
4 1
输出样例 #2
5
1 3 1
2 3 2
4 1 0
2 4 1
1 3 2
输入样例 #3
5 0
3 0 2 4 1
输出样例 #3
5
1 2 2
1 3 1
4 2 2
3 4 0
3 5 1
说明
#### 数据规模与约定
对于 $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***。