For this Question: Given an undirected graph G (V, E) and two vertices v1 and v2 (as integers), check if there exists any path between them or not. Print true or false.
V is the number of vertices present in graph G and vertices are numbered from 0 to V-1.
E is the number of edges present in graph G.Line 1: Two Integers V and E (separated by space)
Next E lines: Two integers a and b, denoting that there exists an edge between vertex a and vertex b (separated by space)
Line (E+2): Two integers v1 and v2 (separated by space)

Constraints :
2 <= V <= 1000
1 <= E <= 1000
0 <= v1, v2 <= V-1For each testcase in new line, you need to print true or false.Sample Input 1 :
4 4
0 1
0 3
1 2
2 3
1 3

Sample Output 1 :
true

Explanation:
There are multiple path exists between 1 and 3. One of them is as such: 1 -> 2 -> 3., I have written this Solution Code: #include<bits/stdc++.h>
using namespace std;

#define pu push_back
#define fi first
#define se second
#define mp make_pair
#define int long long
#define pii pair<int,int>
#define mm (s+e)/2
#define all(x) x.begin(), x.end()
#define For(i, st, en) for(int i=st; i<en; i++)
#define tr(x) for(auto it=x.begin(); it!=x.end(); it++)
#define fast std::ios::sync_with_stdio(false);cin.tie(NULL);
#define sz 200000
int vis[sz];
vector<int> NEB[sz];
void dfs(int x)
{     vis[x]=1;
	for(auto it:NEB[x])
	{
		if(vis[it]==0){
			dfs(it);
		}
	}
}
signed main()
{
	
		int n,m;
		cin>>n>>m;

		for(int i=0;i<m;i++)
		{
			int a,b;
			cin>>a>>b;
			NEB[a].pu(b);
			NEB[b].pu(a);
		}
		int x,y;
        cin>>x>>y;

        dfs(x);
        if(vis[y]==1)cout<<"true";
        else cout<<"false";


	
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?