int n,r,a[18],b[18]; struct M{ int e[18][18]; }; M operator*(M const & a, M const & b){ M c; rep(y,n)rep(x,n){ c.e[y][x]=9999; rep(w,n)c.e[y][x]>=1; } return r; } { M m; rd(n,(a,b)(n)); rep(y,n)rep(x,n)m.e[y][x]=y==x?9999:b[y]-a[y]+a[x]; m=pow(m,n-1); r=9999; rep(y,n)rep(x,n)r