For this Question: Given an integer N, print all balanced bracket strings of length 2*N.
A bracket string is a string that contains only '(' and ')' as its characters.
<ul>
 <li>Empty string is a balanced bracket string</li>
 <li>If <i>S</i> is a balanced bracket string, so is <i>(S)</i></li>
 <li>If <i>S</i> and <i>T</i> are balanced bracket strings, so is <i>ST</i></li>
</ul> 
Print in lexicographical order. '(' appears before ')' in lexicographical orderThe single line of input containing an integer N.
1 <= N <= 15Print all possible balanced bracket strings of length 2*N in a separate line.Sample Input 1:
1

Sample Output 1:
()

Sample Input 2:
3

Sample Output 2:
((()))
(()())
()(())
()()()

Explanation:
It is printed in lexicographical order ., I have written this Solution Code: #include "bits/stdc++.h"
using namespace std;
 
#define int long long int
#define ld long double
#define pi pair<int, int>
#define pb push_back
#define fi first
#define se second
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#ifndef LOCAL
#define endl '\n'
#endif

const int N = 2e5 + 5;
const int mod = 1e9 + 7;
const int inf = 1e9 + 9;

vector<string> rec(int n){
	if(n == 1){
		string t = "()";
		vector<string> v;
		v.push_back(t);
		return v;
	}
	vector<string> v = rec(n-1);
	vector<string> cur;
	for(auto i: v){
		string t = "(" + i + ")";
		cur.push_back(t);
	}
	for(auto i: v){
		string t = "()" + i;
		cur.push_back(t);
	}
	return cur;
}

void solve(){
	int n;	cin >> n;
	vector<string> v = rec(n);
	for(auto i: v)
		cout << i << endl;
}

void testcases(){
	int tt = 1; 
	//cin >> tt;
	while(tt--){
		solve();
	}
}

signed main() {
	testcases();
	return 0;
}	, In this Programming Language: C++, Now tell me if this Code is compilable or not?