day 11, 1 is also 2-1
This commit is contained in:
		
							
								
								
									
										27
									
								
								d11/run.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								d11/run.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| import sys | ||||
| from itertools import combinations as Comb | ||||
|  | ||||
| I = sys.stdin.read().splitlines()  # for codon type inference | ||||
| L = [list(l) for l in I] | ||||
| H = len(L) | ||||
| W = len(L[0]) | ||||
|  | ||||
| RD = [y for y in range(W) if all(L[y][x] == '.' for x in range(H))] | ||||
| CD = [x for x in range(H) if all(L[y][x] == '.' for y in range(W))] | ||||
| G = [(x,y) for y in range(W) for x in range(H) if L[y][x] == '#']     | ||||
|  | ||||
| # expantion factor, 2 for part 1, 1E6 for part 2 | ||||
| X = int(float(sys.argv[1]))  # float to parse scientific form, int for codon  | ||||
|  | ||||
| def exp(a:int, b:int, S:list[int]) -> int: | ||||
|     if a > b: | ||||
|         b, a = a, b | ||||
|     return sum(1 for s in S if a<s<b) | ||||
|  | ||||
| S = 0 | ||||
| for (x1,y1),(x2,y2) in Comb(G,2): | ||||
|     ex = exp(x1, x2, CD) | ||||
|     ey = exp(y1, y2, RD) | ||||
|     d = abs(x2-x1) + abs(y2-y1) + (X-1)*(ex+ey) | ||||
|     S += d | ||||
| print(int(S)) | ||||
		Reference in New Issue
	
	Block a user