新建超级源点$S$,向所有源点连容量为$+\infty$的边即可。汇点同理。问题即转化为普通最大流问题。
ll Dinic(ll s,ll t,ll n)
{
ll res=0;
while(bfs(s,t,n))res+=ex_flow(s,t);
return res;
}
int main()
{
ll n=read(),m=read(),sc=read(),tc=read(),S=n+1,T=n+2;
for(ll i=1;i<=sc;++i)adde(S,read(),INF);
for(ll i=1;i<=tc;++i)adde(read(),T,INF);
while(m--)
{
ll u=read(),v=read(),w=read();
adde(u,v,w);
}
printf("%lld",Dinic(S,T,T));
return 0;
}
ORZ wh!!!
ORZ wh!!!
ORZ wh!!!