Submission #1197915


Source Code Expand

using System;
using System.Collections.Generic;
using System.Linq;

namespace AGC012
{
    public class B
    {
        private void Run()
        {
            var input = Console.ReadLine().Trim().Split();
            var N = int.Parse(input[0]);
            var M = int.Parse(input[1]);

            var edges = Enumerable.Range(0, N).Select(_ => new List<int>()).ToArray();

            while (M-- > 0)
            {
                input = Console.ReadLine().Trim().Split();
                var a = int.Parse(input[0]) - 1;
                var b = int.Parse(input[1]) - 1;
                edges[a].Add(b);
                edges[b].Add(a);
            }

            var Q = int.Parse(Console.ReadLine().Trim());
            var queries = new List<Tuple<int, int, int>>();
            while (Q-- > 0)
            {
                input = Console.ReadLine().Trim().Split();
                var v = int.Parse(input[0]) - 1;
                var d = int.Parse(input[1]);
                var c = int.Parse(input[2]);
                queries.Add(Tuple.Create(v, d, c));
            }

            var color = new int[N];
            var maxUsedDistance = new int[N];
            foreach (var query in queries.AsEnumerable().Reverse())
            {
                var v = query.Item1;
                var d = query.Item2;
                var c = query.Item3;

                var q = new Queue<Tuple<int, int>>();
                q.Enqueue(Tuple.Create(v, d));
                while (q.Count > 0)
                {
                    var t = q.Dequeue();
                    var index = t.Item1;
                    var rest = t.Item2;

                    if (color[index] == 0) { color[index] = c; }
                    if (rest == 0) { continue; }
                    if (maxUsedDistance[index] >= rest) { continue; }
                    maxUsedDistance[index] = rest;

                    foreach (var edge in edges[index])
                    {
                        if (maxUsedDistance[edge] > rest - 1) { continue; }
                        q.Enqueue(Tuple.Create(edge, rest - 1));
                    }
                }
            }
            Console.WriteLine(string.Join(Environment.NewLine, color));
        }

        public static void Main()
        {
            var old = Console.Out;
            using (var writer = new System.IO.StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false })
            {
                Console.SetOut(writer);
                new B().Run();
                Console.Out.Flush();
                Console.SetOut(old);
            }
        }
    }
}

Submission Info

Submission Time
Task B - Splatter Painting
User Tan90909090
Language C# (Mono 4.6.2.0)
Score 700
Code Size 2691 Byte
Status AC
Exec Time 477 ms
Memory 44320 KB

Judge Result

Set Name Sample Subtask1 All
Score / Max Score 0 / 0 200 / 200 500 / 500
Status
AC × 2
AC × 19
AC × 35
Set Name Test Cases
Sample 00_example_01.txt, 00_example_02.txt
Subtask1 00_example_01.txt, 00_example_02.txt, 10_01.txt, 10_02.txt, 10_03.txt, 10_04.txt, 10_05.txt, 10_06.txt, 10_07.txt, 10_08.txt, 10_09.txt, 10_10.txt, 10_11.txt, 10_12.txt, 10_13.txt, 10_14.txt, 10_15.txt, 10_16.txt, 10_17.txt
All 00_example_01.txt, 00_example_02.txt, 10_01.txt, 10_02.txt, 10_03.txt, 10_04.txt, 10_05.txt, 10_06.txt, 10_07.txt, 10_08.txt, 10_09.txt, 10_10.txt, 10_11.txt, 10_12.txt, 10_13.txt, 10_14.txt, 10_15.txt, 10_16.txt, 10_17.txt, 20_01.txt, 20_02.txt, 20_03.txt, 20_04.txt, 20_05.txt, 20_06.txt, 20_07.txt, 20_08.txt, 20_09.txt, 20_10.txt, 20_11.txt, 20_12.txt, 20_13.txt, 20_14.txt, 20_15.txt, 20_16.txt
Case Name Status Exec Time Memory
00_example_01.txt AC 30 ms 11732 KB
00_example_02.txt AC 29 ms 9556 KB
10_01.txt AC 31 ms 11560 KB
10_02.txt AC 30 ms 13652 KB
10_03.txt AC 30 ms 13652 KB
10_04.txt AC 30 ms 13652 KB
10_05.txt AC 30 ms 9620 KB
10_06.txt AC 29 ms 11604 KB
10_07.txt AC 30 ms 11548 KB
10_08.txt AC 36 ms 9624 KB
10_09.txt AC 37 ms 11576 KB
10_10.txt AC 36 ms 11568 KB
10_11.txt AC 36 ms 11568 KB
10_12.txt AC 36 ms 9624 KB
10_13.txt AC 33 ms 11632 KB
10_14.txt AC 33 ms 11632 KB
10_15.txt AC 32 ms 11640 KB
10_16.txt AC 37 ms 13664 KB
10_17.txt AC 36 ms 13664 KB
20_01.txt AC 444 ms 35540 KB
20_02.txt AC 477 ms 31696 KB
20_03.txt AC 465 ms 31572 KB
20_04.txt AC 98 ms 20820 KB
20_05.txt AC 39 ms 13708 KB
20_06.txt AC 67 ms 22136 KB
20_07.txt AC 41 ms 13696 KB
20_08.txt AC 143 ms 22348 KB
20_09.txt AC 38 ms 11660 KB
20_10.txt AC 140 ms 22084 KB
20_11.txt AC 168 ms 21700 KB
20_12.txt AC 221 ms 29724 KB
20_13.txt AC 354 ms 32744 KB
20_14.txt AC 383 ms 32300 KB
20_15.txt AC 419 ms 42900 KB
20_16.txt AC 467 ms 44320 KB