题目描述
シカのAtCoDeerくんは次のような条件を満たす有向グラフを欲しがっています。
- 頂点数Nは 300 以下
- 自己ループや多重辺があってはいけない
- 頂点には 1 から N の番号が付けられている
- 各辺には 0 以上 100 以下の整数値の重み、もしくは、
X または Y というラベルが付けられている
- 全ての 1 < = x < = A, 1 < = y < = B, を満たす整数の組 (x,y) に対し、 ラベル
X が付けられた辺の重みを x に、 Y が付けられた辺の重みを y に書き換えたグラフの 頂点 S から T への最短距離は dx,y
AtCoDeerくんのためにこのようなグラフ(と S と T の組)をひとつ構成してください。条件を満たすグラフが存在しない場合はそれを指摘してください。 出力の方法については出力の欄を参照してください。
输入格式
入力は以下の形式で標準入力から与えられる。
A B d1,1 d1,2 .. d1,B d2,1 d2,2 .. d2,B : dA,1 dA,2 .. dA,B
输出格式
条件を満たすグラフが存在しない場合は Impossible と出力せよ。
条件を満たすグラフが存在する場合、 1 行目に Possible と出力せよ。 2行目以降に 構成したグラフを以下の形式で標準出力に出力せよ。
N M u1 v1 c1 u2 v2 c2 : uM vM cM S T
ただし、 M は出力するグラフの辺数、 ui,vi,ci はグラフの辺を表す。 これは頂点 ui から 頂点 vi に 重み、あるいはラベル ci の有向辺があることを意味する。 入出力例も参考にせよ。
题目大意
题目描述
给出一个A×B的矩阵,其中第i行第j列元素为di,j。试构造一个有向图,满足:
1、有向图点数≤300;
2、图中没有自环和重边;
3、图中边有边权,边权为 [0,100] 中的整数,或者是未知数X或Y;
4、对于所有x∈[1,A],y∈[1,B],满足当未知数X=x,Y=y时,图中S到T的最短路为dx,y。
输入格式
第一行两个正整数A,B(1≤A,B≤10)
接下来一个A×B的矩阵描述d。保证对于$\forall i \in [1,A] , j \in [1,B] , d_{i,j} \in [1,100]$
输出格式
如果不存在满足条件的有向图,输出一行Impossible
否则第一行输出Possible,第二行输出有向图的点数n和边数m,接下来m行每行输出u,v,x描述一条从u到v、边权为x的有向边,最后一行两个正整数S,T。
2 3
1 2 2
1 2 3
Possible
3 4
1 2 X
2 3 1
3 2 Y
1 3 Y
1 3
1 3
100 50 1
Impossible
提示
制約
- 1 < = A,B < = 10
- 1 < = dx,y < = 100 (1 < = x < = A, 1 < = y < = B)
- 入力は全て整数