| 1234567891011121314151617181920212223 | 
							- func validSquare(p1 []int, p2 []int, p3 []int, p4 []int) bool {
 
- 	seg := make(map[int]int)
 
- 	seg[dist2(p1, p2)]++
 
- 	seg[dist2(p1, p3)]++
 
- 	seg[dist2(p1, p4)]++
 
- 	seg[dist2(p2, p3)]++
 
- 	seg[dist2(p2, p4)]++
 
- 	seg[dist2(p3, p4)]++
 
- 	if len(seg) != 2 {
 
- 		return false
 
- 	}
 
- 	for _, v := range seg {
 
- 		if v&1 == 1 {
 
- 			return false
 
- 		}
 
- 	}
 
- 	return true
 
- }
 
- func dist2(p1, p2 []int) int {
 
- 	dx, dy := p1[0]-p2[0], p1[1]-p2[1]
 
- 	return dx*dx + dy*dy
 
- }
 
 
  |