|
|
|
@ -25,10 +25,7 @@ int pf(int x) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool check(Node a, Node b, Node c) {
|
|
|
|
|
cout << "a.x=" << a.x << ",a.y=" << a.y << endl;
|
|
|
|
|
cout << "b.x=" << b.x << ",b.y=" << a.y << endl;
|
|
|
|
|
cout << "c.x=" << c.x << ",c.y=" << a.y << endl;
|
|
|
|
|
|
|
|
|
|
if (a.c != b.c || a.c != c.c || b.c != c.c) return false;
|
|
|
|
|
// a与b之间距离 不等于 a与c之间距离
|
|
|
|
|
if (pf(a.x - b.x) + pf(a.y - b.y) * 3 != pf(a.x - c.x) + pf(a.y - c.y) * 3) return false;
|
|
|
|
|
// a与b之间距离 不等于 b与c之间距离
|
|
|
|
@ -62,20 +59,16 @@ int main() {
|
|
|
|
|
vector<char> res;
|
|
|
|
|
// 在q数组中,选择任意三个,计算两两间距离是不是相等
|
|
|
|
|
for (int i = 0; i < q.size(); i++)
|
|
|
|
|
for (int j = 0; j < q.size(); j++)
|
|
|
|
|
for (int k = 0; k < q.size(); k++) {
|
|
|
|
|
if (i == j || i == k || j == k) continue;
|
|
|
|
|
|
|
|
|
|
if (q[i].c != q[j].c || q[i].c != q[k].c || q[j].c != q[k].c) continue;
|
|
|
|
|
if (check(q[i], q[j], q[k]))
|
|
|
|
|
res.push_back(q[i].c);
|
|
|
|
|
for (int j = i + 1; j < q.size(); j++)
|
|
|
|
|
for (int k = j + 1; k < q.size(); k++) {
|
|
|
|
|
if (check(q[i], q[j], q[k])) res.push_back(q[i].c);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (res.size() == 0)
|
|
|
|
|
cout << "No Solution" << endl;
|
|
|
|
|
else {
|
|
|
|
|
sort(res.begin(), res.end());
|
|
|
|
|
for (char x : res) cout << x << endl;
|
|
|
|
|
}
|
|
|
|
|
// if (res.size() == 0)
|
|
|
|
|
// cout << "No Solution" << endl;
|
|
|
|
|
// else {
|
|
|
|
|
// sort(res.begin(), res.end());
|
|
|
|
|
// for (char x : res) cout << x << endl;
|
|
|
|
|
// }
|
|
|
|
|
return 0;
|
|
|
|
|
}
|