Submission #35318996


Source Code Expand

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Numerics;

namespace Tasks
{
    public class E
    {
        public static void Main()
        {
            using var sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
            Console.SetOut(sw);
            Solve();
            Console.Out.Flush();
        }

        public static void Solve()
        {
            var (N, M, K) = Scanner.Scan<int, int, int>();
            var G = new List<(int, int)>[N].Select(x => new List<(int, int)>()).ToArray();
            const long inf = (long)1e18;
            var Edges = new (int U, int V, long C)[M];
            for (var i = 0; i < M; i++)
            {
                var (a, b, c) = Scanner.Scan<int, int, int>();
                a--; b--;
                G[a].Add((b, c));
                G[b].Add((a, c));
                Edges[i] = (a, b, c);
            }

            var E = Scanner.ScanEnumerable<int>().Select(x => x - 1).ToArray();
            var set = new HashSet<int> { 0 };
            var costs = new long[N];
            Array.Fill(costs, inf);
            costs[0] = 0;

            for (var i = 0; i < K; i++)
            {
                var (a, b, c) = Edges[E[i]];
                if (set.Contains(a))
                {
                    costs[b] = Math.Min(costs[b], costs[a] + c);
                    set.Add(b);
                }
            }

            var answer = costs[N - 1];
            if (answer == inf) answer = -1;
            Console.WriteLine(answer);
        }

        public static class Scanner
        {
            public static string ScanLine() => Console.ReadLine()?.Trim() ?? string.Empty;
            public static string[] Scan() => ScanLine().Split(' ');
            public static T Scan<T>() where T : IConvertible => Convert<T>(Scan()[0]);
            public static (T1, T2) Scan<T1, T2>() where T1 : IConvertible where T2 : IConvertible
            {
                var line = Scan();
                return (Convert<T1>(line[0]), Convert<T2>(line[1]));
            }
            public static (T1, T2, T3) Scan<T1, T2, T3>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible
            {
                var line = Scan();
                return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]));
            }
            public static (T1, T2, T3, T4) Scan<T1, T2, T3, T4>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible
            {
                var line = Scan();
                return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]), Convert<T4>(line[3]));
            }
            public static (T1, T2, T3, T4, T5) Scan<T1, T2, T3, T4, T5>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible where T5 : IConvertible
            {
                var line = Scan();
                return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]), Convert<T4>(line[3]), Convert<T5>(line[4]));
            }
            public static (T1, T2, T3, T4, T5, T6) Scan<T1, T2, T3, T4, T5, T6>() where T1 : IConvertible where T2 : IConvertible where T3 : IConvertible where T4 : IConvertible where T5 : IConvertible where T6 : IConvertible
            {
                var line = Scan();
                return (Convert<T1>(line[0]), Convert<T2>(line[1]), Convert<T3>(line[2]), Convert<T4>(line[3]), Convert<T5>(line[4]), Convert<T6>(line[5]));
            }
            public static IEnumerable<T> ScanEnumerable<T>() where T : IConvertible => Scan().Select(Convert<T>);
            private static T Convert<T>(string value) where T : IConvertible => (T)System.Convert.ChangeType(value, typeof(T));
        }
    }
}

Submission Info

Submission Time
Task E - Subsequence Path
User AconCavy
Language C# (.NET Core 3.1.201)
Score 500
Code Size 3945 Byte
Status AC
Exec Time 369 ms
Memory 82996 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 29
Set Name Test Cases
Sample example_00.txt, example_01.txt, example_02.txt
All example_00.txt, example_01.txt, example_02.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt
Case Name Status Exec Time Memory
example_00.txt AC 87 ms 27948 KiB
example_01.txt AC 82 ms 28248 KiB
example_02.txt AC 81 ms 28136 KiB
test_00.txt AC 303 ms 82996 KiB
test_01.txt AC 81 ms 28076 KiB
test_02.txt AC 267 ms 61168 KiB
test_03.txt AC 213 ms 57456 KiB
test_04.txt AC 122 ms 44764 KiB
test_05.txt AC 171 ms 51336 KiB
test_06.txt AC 288 ms 62572 KiB
test_07.txt AC 328 ms 64932 KiB
test_08.txt AC 277 ms 63236 KiB
test_09.txt AC 369 ms 67392 KiB
test_10.txt AC 352 ms 73816 KiB
test_11.txt AC 246 ms 64332 KiB
test_12.txt AC 182 ms 53184 KiB
test_13.txt AC 137 ms 48740 KiB
test_14.txt AC 346 ms 67932 KiB
test_15.txt AC 129 ms 51704 KiB
test_16.txt AC 138 ms 55500 KiB
test_17.txt AC 159 ms 56896 KiB
test_18.txt AC 335 ms 66720 KiB
test_19.txt AC 188 ms 59872 KiB
test_20.txt AC 217 ms 56004 KiB
test_21.txt AC 324 ms 70896 KiB
test_22.txt AC 314 ms 68420 KiB
test_23.txt AC 241 ms 73836 KiB
test_24.txt AC 243 ms 73660 KiB
test_25.txt AC 245 ms 73868 KiB