#define MD 998244353 ll@t; rep(t){ ll@(ax,ay,az); ll@(bx,by,bz); ll@(cx,cy,cz); ll@(lx,ly,lz); Mint au=(ax-lx)*lz/Mint(lz-az); Mint av=(ay-ly)*lz/Mint(lz-az); Mint bu=(bx-lx)*lz/Mint(lz-bz); Mint bv=(by-ly)*lz/Mint(lz-bz); Mint cu=(cx-lx)*lz/Mint(lz-cz); Mint cv=(cy-ly)*lz/Mint(lz-cz); Mint z=(au*(bv-cv)+bu*(cv-av)+cu*(av-bv))/2; if(1){ double au=(ax-lx)*lz/double(lz-az); double av=(ay-ly)*lz/double(lz-az); double bu=(bx-lx)*lz/double(lz-bz); double bv=(by-ly)*lz/double(lz-bz); double cu=(cx-lx)*lz/double(lz-cz); double cv=(cy-ly)*lz/double(lz-cz); double d=(au*(bv-cv)+bu*(cv-av)+cu*(av-bv))/2; if(d<0){ z=-z; } } wt(z); }