#include const int N = 110; char a[N][N]; /* 4 abccddadca */ using namespace std; struct Node { int x, y; char c; }; vector q; int main() { #ifndef ONLINE_JUDGE freopen("ZhiMuSanJiaoXing.in", "r", stdin); #endif int n; cin >> n; string s; cin >> s; // 先把字符串存入char[][] int idx = 0; for (int i = 0; i < n; i++) // n行 for (int j = 0; j <= i; j++) // i列 a[i][j] = s[idx++]; // 把所有坐标记录下来 for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) q.push_back({i, j, a[i][j]}); } vector res; // 在q数组中,选择任意三个,计算两两间距离是不是相等 for (int i = 0; i < q.size(); i++) for (int j = i + 1; j < q.size(); j++) for (int k = j + 1; k < q.size(); k++) { Node x = q[i], y = q[j], z = q[k]; if (check()) res.push_back(x.c); } if (res.size() == 0) cout << "No Solution" << endl; else { sort(res.begin(), res.end()); for (char x : res) cout << x << endl; } return 0; }