Skip to content

Instantly share code, notes, and snippets.

@nloadholtes
Created December 14, 2018 00:36
Show Gist options
  • Save nloadholtes/894864232a3d88e8acb9e5c1ca849aa3 to your computer and use it in GitHub Desktop.
Save nloadholtes/894864232a3d88e8acb9e5c1ca849aa3 to your computer and use it in GitHub Desktop.
AliceblueMiniModularity created by nloadholtes - https://repl.it/@nloadholtes/AliceblueMiniModularity
Step G must be finished before step X can begin.
Step X must be finished before step B can begin.
Step A must be finished before step I can begin.
Step D must be finished before step H can begin.
Step O must be finished before step T can begin.
Step H must be finished before step C can begin.
Step S must be finished before step E can begin.
Step U must be finished before step M can begin.
Step M must be finished before step Z can begin.
Step R must be finished before step N can begin.
Step C must be finished before step Q can begin.
Step T must be finished before step P can begin.
Step I must be finished before step W can begin.
Step W must be finished before step N can begin.
Step P must be finished before step J can begin.
Step N must be finished before step F can begin.
Step Y must be finished before step J can begin.
Step J must be finished before step L can begin.
Step L must be finished before step E can begin.
Step E must be finished before step B can begin.
Step Q must be finished before step B can begin.
Step F must be finished before step K can begin.
Step V must be finished before step K can begin.
Step Z must be finished before step B can begin.
Step B must be finished before step K can begin.
Step G must be finished before step U can begin.
Step E must be finished before step V can begin.
Step A must be finished before step Z can begin.
Step C must be finished before step V can begin.
Step R must be finished before step B can begin.
Step Q must be finished before step Z can begin.
Step R must be finished before step K can begin.
Step T must be finished before step B can begin.
Step L must be finished before step B can begin.
Step M must be finished before step K can begin.
Step T must be finished before step Z can begin.
Step W must be finished before step B can begin.
Step I must be finished before step E can begin.
Step A must be finished before step M can begin.
Step V must be finished before step Z can begin.
Step Y must be finished before step B can begin.
Step Q must be finished before step F can begin.
Step W must be finished before step Y can begin.
Step U must be finished before step K can begin.
Step D must be finished before step F can begin.
Step P must be finished before step F can begin.
Step N must be finished before step L can begin.
Step H must be finished before step T can begin.
Step H must be finished before step L can begin.
Step C must be finished before step T can begin.
Step H must be finished before step I can begin.
Step Z must be finished before step K can begin.
Step L must be finished before step Z can begin.
Step Y must be finished before step K can begin.
Step I must be finished before step V can begin.
Step P must be finished before step K can begin.
Step P must be finished before step N can begin.
Step G must be finished before step D can begin.
Step I must be finished before step J can begin.
Step H must be finished before step K can begin.
Step L must be finished before step Q can begin.
Step D must be finished before step M can begin.
Step O must be finished before step V can begin.
Step R must be finished before step L can begin.
Step D must be finished before step W can begin.
Step M must be finished before step J can begin.
Step O must be finished before step R can begin.
Step N must be finished before step Z can begin.
Step Y must be finished before step V can begin.
Step W must be finished before step L can begin.
Step U must be finished before step Y can begin.
Step S must be finished before step V can begin.
Step M must be finished before step P can begin.
Step X must be finished before step A can begin.
Step A must be finished before step E can begin.
Step A must be finished before step L can begin.
Step A must be finished before step R can begin.
Step V must be finished before step B can begin.
Step P must be finished before step B can begin.
Step E must be finished before step F can begin.
Step T must be finished before step V can begin.
Step S must be finished before step R can begin.
Step T must be finished before step F can begin.
Step P must be finished before step Y can begin.
Step A must be finished before step C can begin.
Step J must be finished before step F can begin.
Step H must be finished before step B can begin.
Step C must be finished before step E can begin.
Step P must be finished before step E can begin.
Step D must be finished before step I can begin.
Step X must be finished before step F can begin.
Step T must be finished before step Q can begin.
Step J must be finished before step B can begin.
Step C must be finished before step B can begin.
Step P must be finished before step Q can begin.
Step H must be finished before step R can begin.
Step F must be finished before step B can begin.
Step T must be finished before step J can begin.
Step A must be finished before step W can begin.
Step N must be finished before step K can begin.
Step T must be finished before step E can begin.
def main():
data = open("data.txt").readlines()
output = []
for line in data:
first, second = line[5], line[36]
try:
pos = output.index(first)
except:
output.append(first)
pos = len(output) - 1
if second < output[pos]:
pos += 1
if second not in output:
output.insert(pos + 1, second)
print("%s - %s" % (first, second))
# Sorting
end = output.pop()
start = output[0]
output = output[1:]
output.sort()
output.insert(0, start)
output.append(end)
print("".join(output))
#main()
# Got this from reddit
from collections import defaultdict
# Edges
E = defaultdict(list)
# In-degree
D = defaultdict(int)
for line in open('data.txt'):
words = line.split()
x = words[1]
y = words[7]
E[x].append(y)
D[y] += 1
for k in E:
E[k] = sorted(E[k])
print(E)
print(D)
output = []
def drill(E, node=None):
#print("---%s" % node)
if not node:
node = list(E.keys())[0]
output.append(node)
if node in E:
for k in E[node]:
if k in E and E[k] and k not in output:
output.append(k)
drill(E, k)
drill(E)
output.append((D-E.keys()).pop())
print("".join(output))
# for k in E:
# print(k)
# drill(E, k)
#recurse into E to get the correct order
# def drill(graph, edge_list, node):
# for x in edge_list:
# if x in graph:
# if node in edge_list:
# drill(
Step C must be finished before step A can begin.
Step C must be finished before step F can begin.
Step A must be finished before step B can begin.
Step A must be finished before step D can begin.
Step B must be finished before step E can begin.
Step D must be finished before step E can begin.
Step F must be finished before step E can begin.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment