题意:
传说杨wl为了打宇宙大战,然后搞了一个舰队,一开始用一字整形,然后为了战斗,就要调整队形,他可以把i行舰队的所有飞船都搞到j行去。
同时他也想知道两个飞船之间有多少飞船。
如果不在同一列就输出-1.
思路:
发现用并查集不可以,因为路径压缩的时候会有问题,为了解决这个问题,就多开两个数组,一个用来维护这个飞船在的行的第几个,一个用来维护每行的最后一个
const
maxn=3000000;
var
f,d,last:array [1..maxn] of longint;
i,j,n,x,y,ans,dx,dy:longint;
c:char;
function father(x:longint):longint;
begin
if x<>f[x] then father:&