atcoder#ARC089C. [ARC089E] GraphXY

[ARC089E] GraphXY

题目描述

シカのAtCoDeerくんは次のような条件を満たす有向グラフを欲しがっています。

  • 頂点数N N 300 300 以下
  • 自己ループや多重辺があってはいけない
  • 頂点には 1 1 から N N の番号が付けられている
  • 各辺には 0 0 以上 100 100 以下の整数値の重み、もしくは、X または Y というラベルが付けられている
  • 全ての 1 < = x < = A 1\ <\ =\ x\ <\ =\ A , 1 < = y < = B 1\ <\ =\ y\ <\ =\ B , を満たす整数の組 (x,y) (x,y) に対し、 ラベル X が付けられた辺の重みを x x に、 Y が付けられた辺の重みを y y に書き換えたグラフの 頂点 S S から T T への最短距離は dx,y d_{x,y}

AtCoDeerくんのためにこのようなグラフ(と S S T T の組)をひとつ構成してください。条件を満たすグラフが存在しない場合はそれを指摘してください。 出力の方法については出力の欄を参照してください。

输入格式

入力は以下の形式で標準入力から与えられる。

A A B B d1,1 d_{1,1} d1,2 d_{1,2} .. .. d1,B d_{1,B} d2,1 d_{2,1} d2,2 d_{2,2} .. .. d2,B d_{2,B} : : dA,1 d_{A,1} dA,2 d_{A,2} .. .. dA,B d_{A,B}

输出格式

条件を満たすグラフが存在しない場合は Impossible と出力せよ。

条件を満たすグラフが存在する場合、 1 1 行目に Possible と出力せよ。 2 2 行目以降に 構成したグラフを以下の形式で標準出力に出力せよ。

N N M M u1 u_1 v1 v_1 c1 c_1 u2 u_2 v2 v_2 c2 c_2 : uM u_M vM v_M cM c_M S S T T

ただし、 M M は出力するグラフの辺数、 ui,vi,ci u_i,v_i,c_i はグラフの辺を表す。 これは頂点 ui u_i から 頂点 vi v_i に 重み、あるいはラベル ci c_i の有向辺があることを意味する。 入出力例も参考にせよ。

题目大意

题目描述

给出一个A×BA \times B的矩阵,其中第ii行第jj列元素为di,jd_{i,j}。试构造一个有向图,满足:

1、有向图点数300\leq 300

2、图中没有自环和重边;

3、图中边有边权,边权为 [0,100][0,100] 中的整数,或者是未知数XY

4、对于所有x[1,A],y[1,B]x \in [1,A] , y \in[1,B],满足当未知数X=xX = xY=yY = y时,图中SSTT的最短路为dx,yd_{x,y}

输入格式

第一行两个正整数A,B(1A,B10)A,B(1 \leq A , B \leq 10)

接下来一个A×BA \times B的矩阵描述dd。保证对于$\forall i \in [1,A] , j \in [1,B] , d_{i,j} \in [1,100]$

输出格式

如果不存在满足条件的有向图,输出一行Impossible

否则第一行输出Possible,第二行输出有向图的点数nn和边数mm,接下来mm行每行输出u,v,xu,v,x描述一条从uuvv、边权为xx的有向边,最后一行两个正整数S,TS,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 1 < = <\ = A,B A,B < = <\ = 10 10
  • 1 1 < = <\ = dx,y d_{x,y} < = <\ = 100 100 (1 1 < = <\ = x x < = <\ = A A , 1 1 < = <\ = y y < = <\ = B B )
  • 入力は全て整数