Пример #1
0
def main():
    """
    >>> solve(4, 1000000000, 1000000000, 1000000000, 1)
    4
    """
    T = int(input())
    for t in range(T):
        solve(*[int(x) for x in input().split()])
Пример #2
0
def main():
    D = int(input())
    CS = list(map(int, input().split()))
    S = np.int16(read().split())
    S = S.reshape((D, 26))

    # print(calcScore(answer, D, CS, S))
    solve(D, CS, S)
Пример #3
0
def main():
    N, M, K = map(int, input().split())

    AS = list(map(int, input().split()))
    BS = list(map(int, input().split()))

    sA = np.array([0] + list(accumulate(AS)))
    sB = np.array([0] + list(accumulate(BS)))
    # debug("s:sA,sB", sA, sB)
    solve(N, M, K, sA, sB)
Пример #4
0
def main():
    N, M = map(int, input().split())
    from scipy.sparse import lil_matrix
    from scipy.sparse.csgraph import dijkstra
    graph = lil_matrix((N + 1, N + 1), dtype=np.int32)
    for i in range(M):
        v1, v2 = map(int, input().split())
        graph[v1, v2] = 1
        graph[v2, v1] = 1

    start = int(input())
    K = int(input())
    targets = list(map(int, input().split()))

    dist = dijkstra(graph)
    # debug(dist)

    costmemo = {}
    visited = 0
    t2i = {targets[i]: i for i in range(len(targets))}

    def f(visited, last):
        # debug(": visited, last", visited, last)
        if (visited, last) in costmemo:
            return costmemo[(visited, last)]

        mask = 1 << (t2i[last])
        buf = []
        prev = visited ^ mask
        if not prev:
            # it is first vertex
            c = dist[start, last]
            costmemo[(visited, last)] = c
            return c

        for v in targets:
            # debug(":: v", v)
            vmask = 1 << (t2i[v])
            # debug(":: vmask", vmask)
            if prev & vmask:  # v is in visited - last
                buf.append(f(prev, v) + dist[v, last])
        c = min(buf)
        costmemo[(visited, last)] = c
        return c

    fullbits = (1 << len(targets)) - 1
    print(int(min(f(fullbits, last) for last in targets)))
    # print(costmemo)
    solve()
Пример #5
0
def main():
    """
    >>> as_input(IN1)
    >>> main()
    4
    >>> as_input(IN2)
    >>> main()
    2
    >>> as_input(IN3)
    >>> main()
    5
    """
    N, K = map(int, input().split())
    xs = np.array(list(map(int, input().split())))
    solve(N, K, xs)
Пример #6
0
def main():
    N, W = map(int, input().split())
    WV = [
        list(map(int, input().split()))
        for i in range(N)
    ]
    print(solve(N, W, WV))
Пример #7
0
def main():
    D = int(input())
    CS = np.array(list(map(int, input().split())))
    S = np.int16(read().split())
    S = S.reshape((D, 26))

    print(*solve(D, CS, S), sep="\n")
Пример #8
0
def main():
    N, M = map(int, input().split())
    edges = defaultdict(set)
    for i in range(M):
        v1, v2 = map(int, input().split())
        edges[v1].add(v2)

    print(solve(N, M, edges))
Пример #9
0
def main():
    # parse input
    T = int(input())
    for i in range(T):
        N = int(input())
        XS = []
        for j in range(N):
            XS.append(tuple(map(int, input().split())))
        print(solve(N, XS))
Пример #10
0
def main():
    # parse input
    N = int(input())
    edges = defaultdict(list)
    for i in range(N - 1):
        x, y = map(int, input().split())
        edges[x].append(y)
        edges[y].append(x)
    print(solve(N, edges))
Пример #11
0
def main():
    # parse input
    N, M = map(int, input().split())
    LS = [0] * M
    RS = [0] * M
    AS = [0] * M
    for i in range(M):
        LS[i], RS[i], AS[i] = map(int, input().split())

    print(solve(N, M, LS, RS, AS))
Пример #12
0
def main():
    # parse input
    N = int(input())
    AS = []
    BS = []
    for i in range(N):
        A, B = map(int, input().split())
        AS.append(A)
        BS.append(B)

    print(solve(N, AS, BS))
Пример #13
0
def main():
    # parse input
    N, M = map(int, input().split())
    edges = defaultdict(list)
    for i in range(N - 1):
        x, y = map(int, input().split())
        edges[x].append(y)
        edges[y].append(x)

    #print(*solve(N, M, edges), sep="\n")
    for x in solve(N, M, edges):
        print(x)
Пример #14
0
def main():
    # parse input
    N = int(input())
    data = list(map(int, read().split()))
    print(solve(N, data))
Пример #15
0
def main():
    # parse input
    N, K = map(int, input().split())
    X = np.int64(read().split())
    X = X.reshape((N, N))
    print(solve(N, K, X))
Пример #16
0
def main():
    N = int(input())
    AS = list(map(int, input().split()))
    print(solve(N, AS))
Пример #17
0
def main():
    H, W = map(int, input().split())
    data = [input() for i in range(H)]
    print(solve(H, W, data))
Пример #18
0
def main():
    # parse input
    N = int(input())
    lessthan = [c == ord("<") for c in input().strip()]
    print(solve(N, lessthan))
Пример #19
0
def main():
    # parse input
    N = int(input())
    X = input().strip()
    print(*solve(N, X), sep="\n")
Пример #20
0
def main():
    N = int(input())
    K = int(input())
    print(solve(N, K))
Пример #21
0
def main():
    # parse input
    N = int(input())
    S = input().strip().decode('ascii')
    print(*solve(S))
Пример #22
0
def main():
    solve()
Пример #23
0
def main():
    # parse input
    BS = list(input().decode('ascii').split())
    N = int(input())
    SS = [input().strip().decode('ascii') for i in range(N)]
    print(*solve(BS, N, SS), sep="\n")
Пример #24
0
            st = [(h, w)]
            while st:
                h, w = st.pop()
                dist = minDist[h][w] + isFilled[h][w]

                if h + 1 < N and minDist[h + 1][w] > dist:
                    minDist[h + 1][w] = dist
                    st.append((h + 1, w))
                if h - 1 >= 0 and minDist[h - 1][w] > dist:
                    minDist[h - 1][w] = dist
                    st.append((h - 1, w))
                if w + 1 < N and minDist[h][w + 1] > dist:
                    minDist[h][w + 1] = dist
                    st.append((h, w + 1))
                if w - 1 < N and minDist[h][w - 1] > dist:
                    minDist[h][w - 1] = dist
                    st.append((h, w - 1))
        return ans

    cc.compile()
    exit(0)

from my_module import solve

N = int(input())
P = np.asarray(list(map(lambda a: int(a) - 1,
                        input().split())),
               dtype=np.int32)

print(solve(N, P))
Пример #25
0
def main():
    H, W, K = map(int, input().split())
    data = np.array([list(input().strip()) for i in range(H)])
    print(solve(H, W, K, data))
Пример #26
0
def main():
    N = int(input())
    solve(N)
Пример #27
0
def main():
    # parse input
    N, K = map(int, input().split())
    XS = list(map(int, input().split()))
    print(solve(N, K, XS))
Пример #28
0
def main():
    N, M = map(int, input().split())
    data = np.int32(read().split())
    print(solve(N, M, data))
Пример #29
0
    A = np.zeros(n, dtype=np.int64)
    tmp = 1
    for i in range(n - 1, -1, -1):
        A[i] = (tmp << 32) + tmp
        tmp *= 10
        tmp %= MOD

    build(A)

    ans = np.zeros(q, dtype=np.int64)
    for i in range(q):
        range_apply(X[i] - 1, Y[i], REP[i])
        ans[i] = all_prod() >> 32

    return ans


if sys.argv[-1] == 'ONLINE_JUDGE':
    from numba.pycc import CC

    cc = CC('my_module')
    cc.export('solve', '(i8[:],)')(solve)
    cc.compile()
    exit()

from my_module import solve

inp = np.fromstring(sys.stdin.read(), dtype=np.int64, sep=' ')
ans = solve(inp)
print('\n'.join(map(str, ans)))
Пример #30
0
def main():
    # parse input
    N = int(input())
    print(*solve(N), sep="\n")