boolsolve( ) { vector<Point> p(8); for( int i = 0; i < 8; ++ i ) { cin >> p[i].x >> p[i].y >> p[i].z; }
vector<int> dists; for( int i = 0; i < 8; ++ i ) { for( int j = i + 1; j < 8; ++ j ) { int d = dist( p[i], p[j] ); if( d == 0 ) return0; dists.push_back( d ); } }
sort( dists.begin( ), dists.end( ) ); int d = dists[0];
for( int i = 0; i < 28; ++ i ) { if( i < 12 ) { if( dists[i] != d ) return0; } elseif( i < 24 ) { if( dists[i] != 2 * d ) return0; } else { if( dists[i] != 3 * d ) return0; } }