Esempio n. 1
0
def main(argv):
    k, Gs = files.read_graphs(argv[0])
    sc = []

    for G in Gs:
        n, m = G[:2]
        edges = G[2]
        nodes = [n for n in xrange(1, n + 1)]
        sc.append(graphs.semi_connected(nodes, edges))

    print ' '.join('1' if s else '-1' for s in sc)
Esempio n. 2
0
def main(argv):
    k, Gs = files.read_graphs(argv[0])
    cycles = []

    for G in Gs:
        n, m = G[:2]
        edges = G[2]
        A = graphs.adjacency_matrix(n, edges, directed=False)
        cycles.append(graphs.has_4cycles(A))

    print ' '.join('1' if cycles[n] else '-1' for n in xrange(k))
Esempio n. 3
0
def main(argv):
    k, Gs = files.read_graphs(argv[0])
    C     = []

    for G in Gs:
        n, m  = G[:2]
        edges = G[2]
        nodes = [n for n in xrange(1, n + 1)]
        C.append(graphs.bipartite(1, nodes, edges, directed = False))

    print ' '.join('1' if C[n] else '-1' for n in xrange(k))
Esempio n. 4
0
def main(argv):
    k, Gs = files.read_graphs(argv[0])
    C     = []

    for G in Gs:
        n, m  = G[:2]
        edges = G[2]
        nodes = [n for n in xrange(1, n + 1)]
        C.append(graphs.acyclic(nodes, edges))

    print ' '.join('1' if C[n] else '-1' for n in xrange(k))
Esempio n. 5
0
def main(argv):
    k, Gs = files.read_graphs(argv[0])
    sinks = []

    for G in Gs:
        n, m = G[:2]
        edges = G[2]
        nodes = [n for n in xrange(1, n + 1)]
        sinks.append(graphs.general_sink(nodes, edges))

    print ' '.join(str(sink) for sink in sinks)
Esempio n. 6
0
def main(argv):
    k, Gs       = files.read_graphs(argv[0])
    assignments = []

    for G in Gs:
        n, m  = G[:2]
        edges = G[2]
        nodes = [n for n in xrange(1, n + 1)]
        assignments.append(graphs.two_satisfiable(nodes, edges))

    print '\n'.join('1 %s' % ' '.join(str(a) for a in assignment) if assignment else '0' for assignment in assignments)
Esempio n. 7
0
def main(argv):
    k, Gs = files.read_graphs(argv[0])
    paths = []

    for G in Gs:
        n, m = G[:2]
        edges = G[2]
        nodes = [n for n in xrange(1, n + 1)]
        paths.append(graphs.hamiltonian_path(nodes, edges))

    print '\n'.join('1 %s' % ' '.join(str(p) for p in path) if path else '-1'
                    for path in paths)