Submission #36822297


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) = Scanner.Scan<int, int>();
            var A = Scanner.ScanEnumerable<int>().Select(x => x - 1).ToArray();

            var dict = new Dictionary<int, HashSet<int>>();
            for (var i = 0; i < N; i++)
            {
                dict[i] = new HashSet<int>();
            }

            for (var i = 0; i < M; i++)
            {
                dict[0].Add(i);
            }

            for (var k = 0; k < M; k++)
            {
                var i = k;
                var x = A[k];
                var y = A[k] + 1;
                (dict[x], dict[y]) = (dict[y], dict[x]);
                if (dict[x].Contains(i))
                {
                    dict[x].Remove(i);
                    dict[y].Add(i);
                }
                else if (dict[y].Contains(i))
                {
                    dict[y].Remove(i);
                    dict[x].Add(i);
                }
            }

            var answer = new int[M];
            foreach (var (k, set) in dict)
            {
                foreach (var i in set)
                {
                    answer[i] = k + 1;
                }
            }

            Console.WriteLine(string.Join(Environment.NewLine, 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 - Cheating Amidakuji
User AconCavy
Language C# (.NET Core 3.1.201)
Score 500
Code Size 4043 Byte
Status AC
Exec Time 237 ms
Memory 80808 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 39
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 02_small_00.txt, 02_small_01.txt, 02_small_02.txt, 02_small_03.txt, 02_small_04.txt, 03_n_small_m_large_00.txt, 03_n_small_m_large_01.txt, 03_n_small_m_large_02.txt, 03_n_small_m_large_03.txt, 03_n_small_m_large_04.txt, 03_n_small_m_large_05.txt, 03_n_small_m_large_06.txt, 03_n_small_m_large_07.txt, 03_n_small_m_large_08.txt, 03_n_small_m_large_09.txt, 04_max_00.txt, 04_max_01.txt, 04_max_02.txt, 04_max_03.txt, 04_max_04.txt, 04_max_05.txt, 04_max_06.txt, 04_max_07.txt, 04_max_08.txt, 04_max_09.txt, 05_min_00.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 90 ms 28212 KiB
00_sample_01.txt AC 83 ms 28548 KiB
00_sample_02.txt AC 92 ms 28552 KiB
01_random_00.txt AC 171 ms 58476 KiB
01_random_01.txt AC 148 ms 56524 KiB
01_random_02.txt AC 115 ms 41244 KiB
01_random_03.txt AC 173 ms 58784 KiB
01_random_04.txt AC 108 ms 38260 KiB
01_random_05.txt AC 151 ms 51852 KiB
01_random_06.txt AC 154 ms 61352 KiB
01_random_07.txt AC 151 ms 61832 KiB
01_random_08.txt AC 211 ms 70524 KiB
01_random_09.txt AC 119 ms 40492 KiB
02_small_00.txt AC 81 ms 28456 KiB
02_small_01.txt AC 78 ms 28060 KiB
02_small_02.txt AC 75 ms 28312 KiB
02_small_03.txt AC 86 ms 28264 KiB
02_small_04.txt AC 85 ms 28200 KiB
03_n_small_m_large_00.txt AC 130 ms 41832 KiB
03_n_small_m_large_01.txt AC 150 ms 51184 KiB
03_n_small_m_large_02.txt AC 173 ms 56144 KiB
03_n_small_m_large_03.txt AC 162 ms 53100 KiB
03_n_small_m_large_04.txt AC 164 ms 53180 KiB
03_n_small_m_large_05.txt AC 133 ms 44712 KiB
03_n_small_m_large_06.txt AC 160 ms 52420 KiB
03_n_small_m_large_07.txt AC 155 ms 51160 KiB
03_n_small_m_large_08.txt AC 155 ms 50524 KiB
03_n_small_m_large_09.txt AC 154 ms 51564 KiB
04_max_00.txt AC 232 ms 79972 KiB
04_max_01.txt AC 227 ms 80156 KiB
04_max_02.txt AC 231 ms 79896 KiB
04_max_03.txt AC 236 ms 80808 KiB
04_max_04.txt AC 237 ms 80180 KiB
04_max_05.txt AC 230 ms 80308 KiB
04_max_06.txt AC 227 ms 79928 KiB
04_max_07.txt AC 232 ms 80132 KiB
04_max_08.txt AC 222 ms 79916 KiB
04_max_09.txt AC 235 ms 80372 KiB
05_min_00.txt AC 85 ms 28156 KiB