AcWing 5408. Pythagorean 19.5
原题链接
中等
作者:
brivia
,
2024-02-12 10:34:27
,
所有人可见
,
阅读 55
/*
Pythagorea 19.5
6 X 6 的网格中, 给出两点A(3,0) 和 B(4,5),找出所有格点,与他们构成直角三角形,且AB为斜边。
*/
#include<bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
int mul(PII a, PII b)
{
return a.first * b.first + a.second * b.second;
}
PII sub(PII a, PII b)
{
return {a.first - b.first, a.second - b.second};
}
bool equal(PII a, PII b)
{
return a.first == b.first && a.second == b.second;
}
int main(void)
{
PII A = {3, 0};
PII B = {4, 5};
for (int x = 0; x <= 6; ++ x)
for (int y = 0; y <= 6; ++ y)
{
PII C = {x, y};
if (equal(A, C) || equal(B, C)) continue;
if (mul(sub(A, C), sub(B, C)) == 0) cout << "(" << C.first << "," << C.second << ")" << endl;
}
return 0;
}