day 14
This commit is contained in:
		
							
								
								
									
										22
									
								
								d14/d14_1.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								d14/d14_1.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					import sys
 | 
				
			||||||
 | 
					L = sys.stdin.read().splitlines()
 | 
				
			||||||
 | 
					seed = L[0]
 | 
				
			||||||
 | 
					L = L[2:]
 | 
				
			||||||
 | 
					L = [ l.split() for l in L ]
 | 
				
			||||||
 | 
					D = { tuple(k):v for [k,_,v] in L }
 | 
				
			||||||
 | 
					print(seed, D)
 | 
				
			||||||
 | 
					for step in range(10):
 | 
				
			||||||
 | 
						C = ["X"]  # X is their to avoid empty list when comparing to previous char
 | 
				
			||||||
 | 
						for (a,b) in zip(seed, seed[1:]):
 | 
				
			||||||
 | 
							if a != C[-1]:
 | 
				
			||||||
 | 
								C.append(a)
 | 
				
			||||||
 | 
							if (a,b) in D:
 | 
				
			||||||
 | 
								C.append(D[(a,b)])
 | 
				
			||||||
 | 
							C.append(b)
 | 
				
			||||||
 | 
						seed = "".join(C)
 | 
				
			||||||
 | 
						print(step+1, len(seed), seed[1:])
 | 
				
			||||||
 | 
					from collections import Counter
 | 
				
			||||||
 | 
					C = Counter(seed)
 | 
				
			||||||
 | 
					del C["X"]
 | 
				
			||||||
 | 
					print(C, C.values(), max(C.values())-min(C.values()))
 | 
				
			||||||
 | 
					# store 40 iterations will be 20*2^39~=21TB ...
 | 
				
			||||||
							
								
								
									
										27
									
								
								d14/d14_2.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								d14/d14_2.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					import sys
 | 
				
			||||||
 | 
					L = sys.stdin.read().splitlines()
 | 
				
			||||||
 | 
					seed = L[0]
 | 
				
			||||||
 | 
					L = L[2:]
 | 
				
			||||||
 | 
					L = [ l.split() for l in L ]
 | 
				
			||||||
 | 
					D = { tuple(k):v for [k,_,v] in L }
 | 
				
			||||||
 | 
					def reprpairs(P):
 | 
				
			||||||
 | 
						return " ".join(f"{a}{b}:{v}" for ((a,b),v) in P.items())
 | 
				
			||||||
 | 
					E = { K:0 for (K,_) in D.items() }
 | 
				
			||||||
 | 
					for (a,b) in zip(seed, seed[1:]):
 | 
				
			||||||
 | 
						E[(a,b)] += 1
 | 
				
			||||||
 | 
					#print(reprpairs(E))
 | 
				
			||||||
 | 
					for step in range(40):
 | 
				
			||||||
 | 
						F = { K:0 for (K,_) in D.items() }
 | 
				
			||||||
 | 
						for ((a,b),v) in E.items():
 | 
				
			||||||
 | 
							j = D[(a,b)]
 | 
				
			||||||
 | 
							F[(a,j)] += v
 | 
				
			||||||
 | 
							F[(j,b)] += v
 | 
				
			||||||
 | 
						E = F
 | 
				
			||||||
 | 
						#print(step+1,reprpairs(E))
 | 
				
			||||||
 | 
					from collections import defaultdict as dfd
 | 
				
			||||||
 | 
					S = dfd(int)
 | 
				
			||||||
 | 
					for ((a,b),v) in E.items():
 | 
				
			||||||
 | 
						S[a]+=v
 | 
				
			||||||
 | 
						S[b]+=v
 | 
				
			||||||
 | 
					S ={ k:(a+b)  for (k,v) in S.items()  for (a,b) in [divmod(v,2)]  }
 | 
				
			||||||
 | 
					print(S, max(S.values())-min(S.values()))
 | 
				
			||||||
							
								
								
									
										9
									
								
								d14/dograph.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								d14/dograph.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					import sys
 | 
				
			||||||
 | 
					L = sys.stdin.read().splitlines()
 | 
				
			||||||
 | 
					L = L[2:]
 | 
				
			||||||
 | 
					L = [ l.split() for l in L ]
 | 
				
			||||||
 | 
					D = { tuple(k):v for [k,_,v] in L }
 | 
				
			||||||
 | 
					print('digraph G {')
 | 
				
			||||||
 | 
					for ((k,l),v) in D.items():
 | 
				
			||||||
 | 
					    print(f'{k} -> {v} [label="{l}"];')
 | 
				
			||||||
 | 
					print("}")
 | 
				
			||||||
							
								
								
									
										102
									
								
								d14/input
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								d14/input
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
				
			|||||||
 | 
					SVKVKCCBNHNSOSCCOPOC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BB -> O
 | 
				
			||||||
 | 
					BC -> F
 | 
				
			||||||
 | 
					BF -> O
 | 
				
			||||||
 | 
					BH -> O
 | 
				
			||||||
 | 
					BK -> B
 | 
				
			||||||
 | 
					BN -> F
 | 
				
			||||||
 | 
					BO -> S
 | 
				
			||||||
 | 
					BP -> O
 | 
				
			||||||
 | 
					BS -> O
 | 
				
			||||||
 | 
					BV -> O
 | 
				
			||||||
 | 
					CB -> V
 | 
				
			||||||
 | 
					CC -> K
 | 
				
			||||||
 | 
					CF -> N
 | 
				
			||||||
 | 
					CH -> C
 | 
				
			||||||
 | 
					CK -> K
 | 
				
			||||||
 | 
					CN -> P
 | 
				
			||||||
 | 
					CO -> H
 | 
				
			||||||
 | 
					CP -> O
 | 
				
			||||||
 | 
					CS -> P
 | 
				
			||||||
 | 
					CV -> V
 | 
				
			||||||
 | 
					FB -> H
 | 
				
			||||||
 | 
					FC -> F
 | 
				
			||||||
 | 
					FF -> V
 | 
				
			||||||
 | 
					FH -> N
 | 
				
			||||||
 | 
					FK -> N
 | 
				
			||||||
 | 
					FN -> P
 | 
				
			||||||
 | 
					FO -> V
 | 
				
			||||||
 | 
					FP -> B
 | 
				
			||||||
 | 
					FS -> V
 | 
				
			||||||
 | 
					FV -> K
 | 
				
			||||||
 | 
					HB -> B
 | 
				
			||||||
 | 
					HC -> S
 | 
				
			||||||
 | 
					HF -> P
 | 
				
			||||||
 | 
					HH -> B
 | 
				
			||||||
 | 
					HK -> S
 | 
				
			||||||
 | 
					HN -> V
 | 
				
			||||||
 | 
					HO -> V
 | 
				
			||||||
 | 
					HP -> O
 | 
				
			||||||
 | 
					HS -> B
 | 
				
			||||||
 | 
					HV -> H
 | 
				
			||||||
 | 
					KB -> C
 | 
				
			||||||
 | 
					KC -> C
 | 
				
			||||||
 | 
					KF -> B
 | 
				
			||||||
 | 
					KH -> B
 | 
				
			||||||
 | 
					KK -> B
 | 
				
			||||||
 | 
					KN -> H
 | 
				
			||||||
 | 
					KO -> S
 | 
				
			||||||
 | 
					KP -> S
 | 
				
			||||||
 | 
					KS -> N
 | 
				
			||||||
 | 
					KV -> K
 | 
				
			||||||
 | 
					NB -> P
 | 
				
			||||||
 | 
					NC -> S
 | 
				
			||||||
 | 
					NF -> H
 | 
				
			||||||
 | 
					NH -> B
 | 
				
			||||||
 | 
					NK -> N
 | 
				
			||||||
 | 
					NN -> K
 | 
				
			||||||
 | 
					NO -> N
 | 
				
			||||||
 | 
					NP -> B
 | 
				
			||||||
 | 
					NS -> P
 | 
				
			||||||
 | 
					NV -> F
 | 
				
			||||||
 | 
					OB -> V
 | 
				
			||||||
 | 
					OC -> V
 | 
				
			||||||
 | 
					OF -> H
 | 
				
			||||||
 | 
					OH -> C
 | 
				
			||||||
 | 
					OK -> O
 | 
				
			||||||
 | 
					ON -> P
 | 
				
			||||||
 | 
					OO -> V
 | 
				
			||||||
 | 
					OP -> F
 | 
				
			||||||
 | 
					OS -> H
 | 
				
			||||||
 | 
					OV -> F
 | 
				
			||||||
 | 
					PB -> H
 | 
				
			||||||
 | 
					PC -> B
 | 
				
			||||||
 | 
					PF -> P
 | 
				
			||||||
 | 
					PH -> K
 | 
				
			||||||
 | 
					PK -> F
 | 
				
			||||||
 | 
					PN -> B
 | 
				
			||||||
 | 
					PO -> N
 | 
				
			||||||
 | 
					PP -> V
 | 
				
			||||||
 | 
					PS -> S
 | 
				
			||||||
 | 
					PV -> B
 | 
				
			||||||
 | 
					SB -> C
 | 
				
			||||||
 | 
					SC -> C
 | 
				
			||||||
 | 
					SF -> K
 | 
				
			||||||
 | 
					SH -> S
 | 
				
			||||||
 | 
					SK -> H
 | 
				
			||||||
 | 
					SN -> P
 | 
				
			||||||
 | 
					SO -> C
 | 
				
			||||||
 | 
					SP -> P
 | 
				
			||||||
 | 
					SS -> K
 | 
				
			||||||
 | 
					SV -> B
 | 
				
			||||||
 | 
					VB -> S
 | 
				
			||||||
 | 
					VC -> P
 | 
				
			||||||
 | 
					VF -> S
 | 
				
			||||||
 | 
					VH -> V
 | 
				
			||||||
 | 
					VK -> S
 | 
				
			||||||
 | 
					VN -> V
 | 
				
			||||||
 | 
					VO -> N
 | 
				
			||||||
 | 
					VP -> F
 | 
				
			||||||
 | 
					VS -> S
 | 
				
			||||||
 | 
					VV -> O
 | 
				
			||||||
							
								
								
									
										18
									
								
								d14/sample
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								d14/sample
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					NNCB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CH -> B
 | 
				
			||||||
 | 
					HH -> N
 | 
				
			||||||
 | 
					CB -> H
 | 
				
			||||||
 | 
					NH -> C
 | 
				
			||||||
 | 
					HB -> C
 | 
				
			||||||
 | 
					HC -> B
 | 
				
			||||||
 | 
					HN -> C
 | 
				
			||||||
 | 
					NN -> C
 | 
				
			||||||
 | 
					BH -> H
 | 
				
			||||||
 | 
					NC -> B
 | 
				
			||||||
 | 
					NB -> B
 | 
				
			||||||
 | 
					BN -> B
 | 
				
			||||||
 | 
					BB -> N
 | 
				
			||||||
 | 
					BC -> B
 | 
				
			||||||
 | 
					CC -> N
 | 
				
			||||||
 | 
					CN -> C
 | 
				
			||||||
		Reference in New Issue
	
	Block a user