1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <bits/stdc++.h>
using namespace std;

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	int N;
	cin >> N;
	string s[N];
	for(int i = 0; i < N; i++) cin >> s[i];
	string n, t;
	set<string> p;
	int c, m, l, pr;
	for(int i = 0; i < N; i++){
		for(int j = 0; j < N; j++){
			n = s[i] + s[j];
			c = (int) n.size();
			m = 1 << c;
			for(int i = 1; i < m; i++){
				t = "";
				l = 0;
				pr = 0;
				for(int j = 0; j < c; j++){
					if(i&(1 << j)){
						if(n[j] == 'L') l++;
						else pr++;
						if(pr > l) break;
						t += n[j];
					} 
				}
				if(l == pr) p.insert(t);
			}
			cout << p.size() << " ";
			p.clear();
		}
		cout << '\n';
	}
	return 0;
}