#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=5e5+10;
int cnt,cnta,cntb;
int vis[maxn];
vector <int> e[maxn];
void dfs(int k,int t)
{
vis[k]=t;cnt++;
for (auto i:e[k]) if (vis[i]!=t) dfs(i,t);
}
int main()
{
int T;scanf("%d",&T);
for (int t=1;t<=T;t++)
{
int n,m,a,b;scanf("%d%d%d%d",&n,&m,&a,&b);
for (int i=1;i<=n;i++) e[i].clear();
for (int i=1;i<=m;i++)
{
int x,y;scanf("%d%d",&x,&y);
e[x].push_back(y);
e[y].push_back(x);
}
vis[a]=t*2-1;cnt=1;dfs(b,t*2-1);cnta=n-cnt;
vis[b]=t*2;cnt=1;dfs(a,t*2);cntb=n-cnt;
printf("%lld\n",1ll*cnta*cntb);
}
return 0;
}
Teddy and Tweety | Partitioning binary strings |
Special sets | Smallest chosen word |
Going to office | Color the boxes |
Missing numbers | Maximum sum |
13 Reasons Why | Friend's Relationship |
Health of a person | Divisibility |
A. Movement | Numbers in a matrix |
Sequences | Split houses |
Divisible | Three primes |
Coprimes | Cost of balloons |
One String No Trouble | Help Jarvis! |
Lift queries | Goki and his breakup |
Ali and Helping innocent people | Book of Potion making |
Duration | Birthday Party |
e-maze-in | Bricks Game |