last update
parent
f53fb58778
commit
4438bc948f
|
@ -0,0 +1,34 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import networkx as nx
|
||||||
|
import sys
|
||||||
|
|
||||||
|
L = []
|
||||||
|
with open(sys.argv[1], 'r') as f:
|
||||||
|
L = f.readlines()
|
||||||
|
L = [int(x.strip()) for x in L]
|
||||||
|
|
||||||
|
L.sort()
|
||||||
|
|
||||||
|
# part 1
|
||||||
|
jdiff = {'1': 0, '2': 0, '3': 0}
|
||||||
|
for i in range(len(L)):
|
||||||
|
if i == 0:
|
||||||
|
jdiff[str(L[i])] += 1
|
||||||
|
else:
|
||||||
|
jdiff[str(L[i] - L[i - 1])] += 1
|
||||||
|
jdiff['3'] += 1
|
||||||
|
#print(jdiff['1'] * jdiff['3'])
|
||||||
|
|
||||||
|
# part 2
|
||||||
|
G = nx.DiGraph()
|
||||||
|
L.insert(0, 0)
|
||||||
|
L.append(L[-1] + 3)
|
||||||
|
for i in range(len(L)):
|
||||||
|
if i < len(L) - 1 and L[i + 1] in [L[i] + 1, L[i] + 2, L[i] + 3]:
|
||||||
|
G.add_edge(L[i], L[i + 1])
|
||||||
|
if i < len(L) - 2 and L[i + 2] in [L[i] + 1, L[i] + 2, L[i] + 3]:
|
||||||
|
G.add_edge(L[i], L[i + 2])
|
||||||
|
if i < len(L) - 3 and L[i + 3] in [L[i] + 1, L[i] + 2, L[i] + 3]:
|
||||||
|
G.add_edge(L[i], L[i + 3])
|
||||||
|
print(len(list(nx.all_simple_paths(G, L[0], L[-1]))))
|
|
@ -0,0 +1,31 @@
|
||||||
|
28
|
||||||
|
33
|
||||||
|
18
|
||||||
|
42
|
||||||
|
31
|
||||||
|
14
|
||||||
|
46
|
||||||
|
20
|
||||||
|
48
|
||||||
|
47
|
||||||
|
24
|
||||||
|
23
|
||||||
|
49
|
||||||
|
45
|
||||||
|
19
|
||||||
|
38
|
||||||
|
39
|
||||||
|
11
|
||||||
|
1
|
||||||
|
32
|
||||||
|
25
|
||||||
|
35
|
||||||
|
8
|
||||||
|
17
|
||||||
|
7
|
||||||
|
9
|
||||||
|
4
|
||||||
|
2
|
||||||
|
34
|
||||||
|
10
|
||||||
|
3
|
|
@ -0,0 +1,103 @@
|
||||||
|
149
|
||||||
|
87
|
||||||
|
67
|
||||||
|
45
|
||||||
|
76
|
||||||
|
29
|
||||||
|
107
|
||||||
|
88
|
||||||
|
4
|
||||||
|
11
|
||||||
|
118
|
||||||
|
160
|
||||||
|
20
|
||||||
|
115
|
||||||
|
130
|
||||||
|
91
|
||||||
|
144
|
||||||
|
152
|
||||||
|
33
|
||||||
|
94
|
||||||
|
53
|
||||||
|
148
|
||||||
|
138
|
||||||
|
47
|
||||||
|
104
|
||||||
|
121
|
||||||
|
112
|
||||||
|
116
|
||||||
|
99
|
||||||
|
105
|
||||||
|
34
|
||||||
|
14
|
||||||
|
44
|
||||||
|
137
|
||||||
|
52
|
||||||
|
2
|
||||||
|
65
|
||||||
|
141
|
||||||
|
140
|
||||||
|
86
|
||||||
|
84
|
||||||
|
81
|
||||||
|
124
|
||||||
|
62
|
||||||
|
15
|
||||||
|
68
|
||||||
|
147
|
||||||
|
27
|
||||||
|
106
|
||||||
|
28
|
||||||
|
69
|
||||||
|
163
|
||||||
|
97
|
||||||
|
111
|
||||||
|
162
|
||||||
|
17
|
||||||
|
159
|
||||||
|
122
|
||||||
|
156
|
||||||
|
127
|
||||||
|
46
|
||||||
|
35
|
||||||
|
128
|
||||||
|
123
|
||||||
|
48
|
||||||
|
38
|
||||||
|
129
|
||||||
|
161
|
||||||
|
3
|
||||||
|
24
|
||||||
|
60
|
||||||
|
58
|
||||||
|
155
|
||||||
|
22
|
||||||
|
55
|
||||||
|
75
|
||||||
|
16
|
||||||
|
8
|
||||||
|
78
|
||||||
|
134
|
||||||
|
30
|
||||||
|
61
|
||||||
|
72
|
||||||
|
54
|
||||||
|
41
|
||||||
|
1
|
||||||
|
59
|
||||||
|
101
|
||||||
|
10
|
||||||
|
85
|
||||||
|
139
|
||||||
|
9
|
||||||
|
98
|
||||||
|
21
|
||||||
|
108
|
||||||
|
117
|
||||||
|
131
|
||||||
|
66
|
||||||
|
23
|
||||||
|
77
|
||||||
|
7
|
||||||
|
100
|
||||||
|
51
|
|
@ -0,0 +1,14 @@
|
||||||
|
[0, 1, 4, 5, 6, 7, 10, 11, 12, 15, 16, 19, 22]
|
||||||
|
[0, 1, 4, 5, 6, 7, 10, 12, 15, 16, 19, 22]
|
||||||
|
[0, 1, 4, 5, 7, 10, 11, 12, 15, 16, 19, 22]
|
||||||
|
[0, 1, 4, 5, 7, 10, 12, 15, 16, 19, 22]
|
||||||
|
[0, 1, 4, 6, 5, 7, 10, 11, 12, 15, 16, 19, 22]
|
||||||
|
[0, 1, 4, 6, 5, 7, 10, 12, 15, 16, 19, 22]
|
||||||
|
[0, 1, 4, 6, 7, 10, 11, 12, 15, 16, 19, 22]
|
||||||
|
[0, 1, 4, 6, 7, 10, 12, 15, 16, 19, 22]
|
||||||
|
[0, 1, 4, 7, 10, 11, 12, 15, 16, 19, 22]
|
||||||
|
[0, 1, 4, 7, 10, 12, 15, 16, 19, 22]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from random import randrange
|
||||||
|
import sys
|
||||||
|
|
||||||
|
L = []
|
||||||
|
with open(sys.argv[1], 'r') as f:
|
||||||
|
L = f.readlines()
|
||||||
|
L = [int(x.strip()) for x in L]
|
||||||
|
|
||||||
|
|
||||||
|
def validsum(L, n):
|
||||||
|
for i in L:
|
||||||
|
for ii in L:
|
||||||
|
if i + ii == n:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
# part 1
|
||||||
|
p = 25
|
||||||
|
ans = 0
|
||||||
|
for i in range(len(L)):
|
||||||
|
if i < p:
|
||||||
|
continue
|
||||||
|
if not validsum(L[i-p:i], L[i]):
|
||||||
|
print(L[i])
|
||||||
|
ans = L[i]
|
||||||
|
break
|
||||||
|
|
||||||
|
# part 2
|
||||||
|
for i in range(len(L)):
|
||||||
|
nums = [L[i]]
|
||||||
|
for ii in L[i+1:]:
|
||||||
|
nums.append(ii)
|
||||||
|
if sum(nums) == ans:
|
||||||
|
nums.sort()
|
||||||
|
print(nums[0] + nums[-1])
|
||||||
|
sys.exit(0)
|
||||||
|
elif sum(nums) > ans:
|
||||||
|
break
|
|
@ -0,0 +1,20 @@
|
||||||
|
35
|
||||||
|
20
|
||||||
|
15
|
||||||
|
25
|
||||||
|
47
|
||||||
|
40
|
||||||
|
62
|
||||||
|
55
|
||||||
|
65
|
||||||
|
95
|
||||||
|
102
|
||||||
|
117
|
||||||
|
150
|
||||||
|
182
|
||||||
|
127
|
||||||
|
219
|
||||||
|
299
|
||||||
|
277
|
||||||
|
309
|
||||||
|
576
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue