https://codeforc.es/group/vFwRVj9WjO/contest/325796/problem/C
思路:
不能只判断一个点,一共八个点,每个点都判断一次,复杂度为 8 8 8^8 88
puts("abs")
自动换行
#include <bits/stdc++.h>
using namespace std;
int p[8][3];
bool check()
{
double dis[35];
for(int i=1;i<=8;i++){
int cnt=1;
for(int j=1;j<=8;j++){
if(i==j) continue;
dis[cnt]=0;
dis[cnt] += (p[i][1]-p[j][1]) * (p[i][1]-p[j][1]);
dis[cnt] += (p[i][2]-p[j][2]) * (p[i][2]-p[j][2]);
dis[cnt] += (p[i][3]-p[j][3]) * (p[i][3]-p[j][3]);
cnt++;
}
sort(dis,dis+cnt);
if(dis[1]==0) return false;
if(dis[1]!=dis[2]||dis[1]!=dis[3]||dis[2]!=dis[3]) return false;
if(dis[4]!=dis[5]||dis[4]!=dis[6]||dis[5]!=dis[6]) return false;
if(dis[1]*2!=dis[4]||dis[1]*3!=dis[7]) return false;
}
return true;
}
int main()
{
int t;
cin >> t;
while(t--)
{
for(int i=1;i<=8;i++)
{
for(int j=1;j<=3;j++)
{
cin >> p[i][j];
}
}
if(check()) puts("YES");
else puts("NO");
}
return 0;
}