| Conditions | 8 |
| Total Lines | 23 |
| Code Lines | 19 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 1 | from itertools import combinations |
||
| 21 | def checkio(cakes): |
||
| 22 | LinesDict = {} |
||
| 23 | for i in combinations(cakes, 2): |
||
| 24 | if i[0][0] == i[1][0]: |
||
| 25 | LinesDict[str(i)] = float('inf') |
||
|
|
|||
| 26 | else: |
||
| 27 | if i[0][0] < i[1][0]: |
||
| 28 | LinesDict[str(i)] = (i[1][1] - i[0][1]) / (i[1][0] - i[0][0]) |
||
| 29 | else: |
||
| 30 | LinesDict[str(i)] = (i[0][1] - i[1][1]) / (i[0][0] - i[1][0]) |
||
| 31 | |||
| 32 | SlopesDict = {} |
||
| 33 | for key, value in sorted(LinesDict.items()): |
||
| 34 | if value not in SlopesDict: |
||
| 35 | SlopesDict[value] = [] |
||
| 36 | SlopesDict[value].append(key) |
||
| 37 | keys_to_del = [i for i in SlopesDict if len(SlopesDict[i]) < 3] |
||
| 38 | for i in keys_to_del: |
||
| 39 | del SlopesDict[i] |
||
| 40 | |||
| 41 | for key, value in SlopesDict.items(): |
||
| 42 | SlopesDict[key] = [i for i in GroupDots(value) if len(i) > 2] |
||
| 43 | return sum([len(SlopesDict[i]) for i in SlopesDict]) |
||
| 44 | |||
| 69 |