約40分気付かなかったミス

rep(j, a.size()) aa[a[j]] = 1;

とすべきところを

rep(j, a.size()) aa[j] = 1;

としていた。
解法がMaximumFlowであって、そっちがバグってるんじゃないかと思っていたが単純なミスだった。

解法・ライブラリ・変な所が間違ってるんじゃないかと思って確認して、それでもミスが見つけられなかったら、1回全体をきちんと見直すべきだ。