提出 #74224874


ソースコード 拡げる

import java.io.*;
import java.util.*;

public class Main {
    static int K, S;
    static int[] T;
    static int[][] memo;
    static int[][] dist;
    private static final int INF = Integer.MAX_VALUE / 2;
    public static void main(String[] args) {
        InputReader reader = new InputReader(System.in);
        PrintWriter writer = new PrintWriter(System.out, false);
        int N = reader.nextInt();
        int M = reader.nextInt();
        dist = new int[N][N];
        for (int i = 0; i < N; i++) {
            Arrays.fill(dist[i], INF);
            dist[i][i] = 0;
        }
        for (int i = 0; i < M; i++) {
            int u = reader.nextInt() - 1;
            int v = reader.nextInt() - 1;
            int w = reader.nextInt();
            dist[u][v] = Math.min(dist[u][v], w);
        }
        for (int k = 0; k < N; k++) {
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < N; j++) {
                    dist[i][j] = Math.min(dist[i][j], dist[i][k] + dist[k][j]);
                }
            }
        }
        S = reader.nextInt() - 1;
        K = reader.nextInt();
        T = new int[K];
        for (int i = 0; i < K; i++) {
            T[i] = reader.nextInt() - 1;
        }
        memo = new int[(1 << K)][K];
        for (int[] row : memo) Arrays.fill(row, -1);
        int answer = INF;
        for (int i = 0; i < K; i++) {
            answer = Math.min(answer, dist[S][T[i]] + minCost(1 << i, i));
        }
        writer.println(answer == INF ? -1 : answer);
        writer.close();
        System.exit(0);
    }

    private static int minCost(int mask, int cur) {
        if (mask == (1 << K) - 1) return dist[T[cur]][S];
        if (memo[mask][cur] != -1) return memo[mask][cur];
        int result = INF;
        for (int nxt = 0; nxt < K; nxt++) {
            if ((mask & (1 << nxt)) == 0) {
                result = Math.min(result, dist[T[cur]][T[nxt]] + minCost(mask | (1 << nxt), nxt));
            }
        }
        memo[mask][cur] = result;
        return result;
    }

    static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;
        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(stream), 32768);
            tokenizer = null;
        }
        public String next() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }
        public int nextInt() {
            return Integer.parseInt(next());
        }
        public long nextLong() {
            return Long.parseLong(next());
        }
        public double nextDouble() {
            return Double.parseDouble(next());
        }
        public String nextLine() {
            String str = "";
            try {
                str = reader.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
    }
}

提出情報

提出日時
問題 E - 巡回配達
ユーザ UttamS
言語 Java24 (OpenJDK 24.0.2)
得点 0
コード長 3318 Byte
結果 WA
実行時間 303 ms
メモリ 60188 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 433
結果
AC × 5
AC × 88
WA × 2
セット名 テストケース
Sample sample01.txt, sample02.txt, sample03.txt, sample04.txt, sample05.txt
All sample01.txt, sample02.txt, sample03.txt, sample04.txt, sample05.txt, in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in46.txt, in47.txt, in48.txt, in49.txt, in50.txt, in51.txt, in52.txt, in53.txt, in54.txt, in55.txt, in56.txt, in57.txt, in58.txt, in59.txt, in60.txt, in61.txt, in62.txt, in63.txt, in64.txt, in65.txt, in66.txt, in67.txt, in68.txt, in69.txt, in70.txt, in71.txt, in72.txt, in73.txt, in74.txt, in75.txt, in76.txt, in77.txt, in78.txt, in79.txt, in80.txt, in81.txt, in82.txt, in83.txt, in84.txt, in85.txt
ケース名 結果 実行時間 メモリ
in01.txt AC 58 ms 38912 KiB
in02.txt AC 53 ms 39092 KiB
in03.txt AC 53 ms 38976 KiB
in04.txt AC 53 ms 38996 KiB
in05.txt AC 53 ms 39264 KiB
in06.txt AC 88 ms 43176 KiB
in07.txt AC 211 ms 47468 KiB
in08.txt AC 89 ms 43520 KiB
in09.txt AC 85 ms 43504 KiB
in10.txt AC 269 ms 59144 KiB
in11.txt AC 251 ms 52860 KiB
in12.txt AC 252 ms 52888 KiB
in13.txt AC 233 ms 53996 KiB
in14.txt AC 112 ms 42724 KiB
in15.txt AC 240 ms 59124 KiB
in16.txt AC 267 ms 59320 KiB
in17.txt AC 155 ms 45436 KiB
in18.txt AC 248 ms 53180 KiB
in19.txt AC 54 ms 39524 KiB
in20.txt AC 177 ms 46740 KiB
in21.txt AC 268 ms 59516 KiB
in22.txt AC 270 ms 59176 KiB
in23.txt AC 270 ms 59588 KiB
in24.txt AC 300 ms 59496 KiB
in25.txt AC 271 ms 59452 KiB
in26.txt AC 54 ms 39264 KiB
in27.txt AC 53 ms 39084 KiB
in28.txt AC 142 ms 45692 KiB
in29.txt AC 141 ms 45544 KiB
in30.txt AC 53 ms 38956 KiB
in31.txt AC 53 ms 38976 KiB
in32.txt AC 52 ms 38968 KiB
in33.txt AC 53 ms 39320 KiB
in34.txt AC 53 ms 39316 KiB
in35.txt AC 52 ms 38960 KiB
in36.txt AC 53 ms 39360 KiB
in37.txt AC 54 ms 39268 KiB
in38.txt AC 53 ms 39084 KiB
in39.txt AC 53 ms 39208 KiB
in40.txt AC 53 ms 38980 KiB
in41.txt AC 53 ms 39036 KiB
in42.txt AC 53 ms 39004 KiB
in43.txt AC 52 ms 39192 KiB
in44.txt AC 54 ms 39236 KiB
in45.txt AC 268 ms 57784 KiB
in46.txt AC 273 ms 59168 KiB
in47.txt AC 303 ms 59784 KiB
in48.txt AC 271 ms 59404 KiB
in49.txt AC 142 ms 45632 KiB
in50.txt AC 141 ms 45764 KiB
in51.txt AC 267 ms 58908 KiB
in52.txt AC 268 ms 60188 KiB
in53.txt AC 292 ms 59820 KiB
in54.txt AC 243 ms 56828 KiB
in55.txt AC 302 ms 59440 KiB
in56.txt AC 270 ms 59168 KiB
in57.txt AC 268 ms 59216 KiB
in58.txt AC 271 ms 59508 KiB
in59.txt AC 268 ms 59460 KiB
in60.txt AC 265 ms 59276 KiB
in61.txt AC 298 ms 59648 KiB
in62.txt AC 268 ms 59920 KiB
in63.txt AC 266 ms 59084 KiB
in64.txt AC 264 ms 59240 KiB
in65.txt AC 53 ms 39084 KiB
in66.txt AC 54 ms 39512 KiB
in67.txt WA 140 ms 45488 KiB
in68.txt WA 142 ms 45532 KiB
in69.txt AC 53 ms 39208 KiB
in70.txt AC 53 ms 38960 KiB
in71.txt AC 53 ms 39156 KiB
in72.txt AC 53 ms 38936 KiB
in73.txt AC 54 ms 39288 KiB
in74.txt AC 53 ms 39380 KiB
in75.txt AC 54 ms 39316 KiB
in76.txt AC 53 ms 39252 KiB
in77.txt AC 53 ms 39432 KiB
in78.txt AC 54 ms 39188 KiB
in79.txt AC 54 ms 39220 KiB
in80.txt AC 54 ms 39220 KiB
in81.txt AC 53 ms 39136 KiB
in82.txt AC 53 ms 39208 KiB
in83.txt AC 53 ms 39116 KiB
in84.txt AC 264 ms 58820 KiB
in85.txt AC 266 ms 59440 KiB
sample01.txt AC 53 ms 39380 KiB
sample02.txt AC 54 ms 39196 KiB
sample03.txt AC 52 ms 38884 KiB
sample04.txt AC 53 ms 39136 KiB
sample05.txt AC 53 ms 38848 KiB